<SEC-DOCUMENT>0001654954-25-009327.txt : 20250811
<SEC-HEADER>0001654954-25-009327.hdr.sgml : 20250811
<ACCEPTANCE-DATETIME>20250811083305
ACCESSION NUMBER:		0001654954-25-009327
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		62
CONFORMED PERIOD OF REPORT:	20250630
FILED AS OF DATE:		20250811
DATE AS OF CHANGE:		20250811

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TSS, Inc.
		CENTRAL INDEX KEY:			0001320760
		STANDARD INDUSTRIAL CLASSIFICATION:	SERVICES-MANAGEMENT CONSULTING SERVICES [8742]
		ORGANIZATION NAME:           	07 Trade & Services
		EIN:				202027651
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

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

	BUSINESS ADDRESS:	
		STREET 1:		110 E. OLD SETTLERS ROAD
		STREET 2:		SUITE 100
		CITY:			ROUND ROCK
		STATE:			TX
		ZIP:			78664
		BUSINESS PHONE:		(512) 310-1000

	MAIL ADDRESS:	
		STREET 1:		110 E. OLD SETTLERS ROAD
		STREET 2:		SUITE 100
		CITY:			ROUND ROCK
		STATE:			TX
		ZIP:			78664

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	Fortress International Group, Inc.
		DATE OF NAME CHANGE:	20130814

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	TSS, Inc.
		DATE OF NAME CHANGE:	20130607

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	Fortress International Group, Inc.
		DATE OF NAME CHANGE:	20070131
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>tssi_10q.htm
<DESCRIPTION>FORM 10-Q
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:currency="http://xbrl.sec.gov/currency/2025" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:country="http://xbrl.sec.gov/country/2025" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2025" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:srt="http://fasb.org/srt/2025" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:ecd="http://xbrl.sec.gov/ecd/2025" xmlns:ffd="http://xbrl.sec.gov/ffd/2025" xmlns:tssi="http://tssi.com/20250630"><head><title>tssi_10q.htm</title><!--Document Created by XBRLMaster--><meta http-equiv="Content-Type" content="text/html"/></head><body style="text-align:left;font:10pt times new roman"><div style="display:none;text-align:left;font:10pt times new roman;" id="XBRLDIV"><ix:header><ix:hidden><ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="From2025-01-01to2025-06-30" id="ixv-11422">0001320760</ix:nonNumeric><ix:nonNumeric name="dei:AmendmentFlag" contextRef="From2025-01-01to2025-06-30" format="ixt:booleanfalse" id="ixv-11423">false</ix:nonNumeric><ix:nonNumeric name="dei:CurrentFiscalYearEndDate" contextRef="From2025-01-01to2025-06-30" id="ixv-11424">--12-31</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalPeriodFocus" contextRef="From2025-01-01to2025-06-30" id="ixv-11425">Q2</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalYearFocus" contextRef="From2025-01-01to2025-06-30" id="ixv-11426">2025</ix:nonNumeric><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="AsOf2024-12-31" unitRef="USDPShares" decimals="INF" id="ixv-11427">0.0001</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2024-12-31" unitRef="Shares" decimals="0" id="ixv-11428">49000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2024-12-31" unitRef="USDPShares" decimals="INF" id="ixv-11429">0.0001</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2024-12-31" unitRef="Shares" decimals="0" id="ixv-11430">1000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2024-12-31" unitRef="Shares" decimals="0" id="ixv-11431">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2025-06-30" unitRef="Shares" decimals="0" id="ixv-11432">0</ix:nonFraction><ix:nonNumeric name="ecd:Rule10b51ArrAdoptedFlag" contextRef="From2025-01-01to2025-06-30" id="ixv-11433">false</ix:nonNumeric><ix:nonNumeric name="ecd:Rule10b51ArrTrmntdFlag" contextRef="From2025-01-01to2025-06-30" id="ixv-11434">false</ix:nonNumeric><ix:nonNumeric name="ecd:NonRule10b51ArrAdoptedFlag" contextRef="From2025-01-01to2025-06-30" id="ixv-11435">false</ix:nonNumeric><ix:nonNumeric name="ecd:NonRule10b51ArrTrmntdFlag" contextRef="From2025-01-01to2025-06-30" id="ixv-11436">false</ix:nonNumeric><ix:nonFraction name="tssi:CashDepositInAMoneyMarketAccount" contextRef="AsOf2024-12-31" unitRef="USD" decimals="0" id="ixv-11437">5.0</ix:nonFraction><ix:nonFraction name="tssi:ConcentrationRiskPercentageOne" contextRef="From2024-01-01to2024-12-31_tssi_USBasedITOEMCompanyMember_us-gaap_AccountsReceivableMember" unitRef="Pure" decimals="2" id="ixv-11438">0.98</ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="tssi-20250630.xsd"/></ix:references><ix:resources><xbrli:context id="From2025-01-01to2025-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-07-05_us-gaap_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-07-05</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_OperatingSegmentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_OperatingSegmentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_DilutedNetIncomePerShareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:DilutedNetIncomePerShareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_DilutedNetIncomePerShareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:DilutedNetIncomePerShareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_DilutedNetIncomePerShareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:DilutedNetIncomePerShareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_DilutedNetIncomePerShareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:DilutedNetIncomePerShareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_BasicNetIncomePerShareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:BasicNetIncomePerShareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_BasicNetIncomePerShareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:BasicNetIncomePerShareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_BasicNetIncomePerShareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:BasicNetIncomePerShareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_BasicNetIncomePerShareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:BasicNetIncomePerShareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_TopMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_BottomMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_CreditAgreementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">tssi:CreditAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_CreditAgreementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">tssi:CreditAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tssi_CreditAgreementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">tssi:CreditAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_ConstructionInProcessMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ConstructionInProcessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tssi_ConstructionInProcessMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ConstructionInProcessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_LeaseholdImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_LeaseholdImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_ComputerEquipmentAndSoftwareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tssi_ComputerEquipmentAndSoftwareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_ComputerEquipmentAndSoftwareMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_FurnitureAndFixturesMember_tssi_TopMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_FurnitureAndFixturesMember_tssi_TopMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_us-gaap_FurnitureAndFixturesMember_tssi_TopMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_TopMember_us-gaap_LeaseholdImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_BottomMember_us-gaap_LeaseholdImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_TradeEquipmentMember_tssi_BottomMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:TradeEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tssi_TradeEquipmentMember_tssi_BottomMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:TradeEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_FurnitureAndFixtureMember_tssi_BottomMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:FurnitureAndFixtureMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_TradeEquipmentMember_tssi_TopMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:TradeEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_TradeEquipmentMember_tssi_BottomMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:TradeEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_ComputerSoftwareIntangibleAssetMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_ComputerSoftwareIntangibleAssetMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_CustomerRelationshipsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_CustomerRelationshipsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_GoodwillMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByAssetClassAxis">us-gaap:GoodwillMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_GoodwillMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByAssetClassAxis">us-gaap:GoodwillMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_ProcurementAndIntegrationServicesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementAndIntegrationServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_MaintenanceContractsObligationsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:MaintenanceContractsObligationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-12-31_tssi_USBasedITOEMCompanyMember_us-gaap_AccountsReceivableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_us-gaap_AccountsReceivableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">tssi:RevenuesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">tssi:RevenuesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">tssi:RevenuesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">tssi:RevenuesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:IntegrationServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:IntegrationServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:EquipmentDeploymentAndOtherServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:EquipmentDeploymentAndOtherServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_ProcurementRevenuesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_ProcurementRevenuesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:MaintenanceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:MaintenanceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:MaintenanceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_ProcurementRevenuesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:IntegrationServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:EquipmentDeploymentAndOtherServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_ProcurementRevenuesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:IntegrationServicesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:EquipmentDeploymentAndOtherServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:MaintenanceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-06-30_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_FacilitiesSegmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-03-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-03-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-03-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-03-31_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-03-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-03-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-03-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-03-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-03-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-03-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-03-31_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-03-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-03-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-03-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31_tssi_TreasuryCommonSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-04-01to2024-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-04-01to2025-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-08-07"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001320760</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-08-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="USDPShares"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="Pure"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit></ix:resources></ix:header></div><table style="font-size:1px;width:100%"><tbody><tr><td style="BORDER-BOTTOM: 5px solid;"/></tr><tr><td style="BORDER-BOTTOM: 2px solid;"/></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>UNITED STATES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SECURITIES AND EXCHANGE COMMISSION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Washington, D.C. 20549</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span style="font-size:18pt">FORM <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:DocumentType" id="ixv-12646">10-Q</ix:nonNumeric></span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 45px; text-align:left;">(Mark One)</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 45px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:DocumentQuarterlyReport" format="ixt-sec:boolballotbox" id="ixv-12647">&#9746;</ix:nonNumeric></p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">For the quarterly period ended <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:DocumentPeriodEndDate" format="ixt:datemonthdayyearen" id="ixv-12648">June 30, 2025</ix:nonNumeric></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">or</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox" id="ixv-12649">&#9744;</ix:nonNumeric></p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Commission file number: <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityFileNumber" id="ixv-12650">001-33627</ix:nonNumeric></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:left;margin-left:auto;margin-right:auto;width:60%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span style="font-size:18pt"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityRegistrantName" id="ixv-12651">TSS, INC.</ix:nonNumeric></span></strong></p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Exact name of registrant as specified in its charter)</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:justify;margin-left:auto;margin-right:auto;width:85%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:45%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="ixv-12652">Delaware</ix:nonNumeric></strong></p></td><td style="width:10%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:45%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityTaxIdentificationNumber" id="ixv-12653">20-2027651</ix:nonNumeric></strong></p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(State or other jurisdiction of</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">incorporation or organization)</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(I.R.S. Employer Identification No.)</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityAddressAddressLine1" id="ixv-12654">1800 Aviation Drive</ix:nonNumeric>, <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityAddressAddressLine2" id="ixv-12655">Building 1</ix:nonNumeric>, <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityAddressAddressLine3" id="ixv-12656">Suite 100</ix:nonNumeric></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityAddressCityOrTown" id="ixv-12657">Georgetown</ix:nonNumeric>, <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="ixv-12658">Texas</ix:nonNumeric></strong></p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityAddressPostalZipCode" id="ixv-12659">78628</ix:nonNumeric></strong></p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Address of principal executive offices)</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Zip Code)</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Former address of principal executive offices:&#160; 110 E. Old Settlers Blvd., Round Rock, TX 78664</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;Registrant&#8217;s telephone number, including area code</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span style="text-decoration:underline">(<ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:CityAreaCode" id="ixv-12660">512</ix:nonNumeric>)-<ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:LocalPhoneNumber" id="ixv-12661">310-1000</ix:nonNumeric></span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Securities registered pursuant to Section 12(b) of the Exchange Act:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;width:30%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Title of Each Class</strong></p></td><td style="width:5%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:30%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Ticker Symbol</strong></p></td><td style="width:5%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:30%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Name of Each Exchange on Which Registered</strong></p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:Security12bTitle" id="ixv-12662">Common Stock, $.0001 par value</ix:nonNumeric></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:TradingSymbol" id="ixv-12663">TSSI</ix:nonNumeric></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="ixv-12664">Nasdaq</ix:nonNumeric> Capital Market</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">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 past 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days. <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityCurrentReportingStatus" id="ixv-12665">Yes</ix:nonNumeric> &#9746;&#160; &#160;&#160; No &#9744;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Indicate by check mark whether each registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (&#167;232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files). <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityInteractiveDataCurrent" id="ixv-12666">Yes</ix:nonNumeric> &#9746;&#160;&#160;&#160; &#160;No &#9744;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">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. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:justify;margin-left:auto;margin-right:auto;width:85%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:30%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Large accelerated filer</p></td><td style="width:20%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9744;</p></td><td style="width:30%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accelerated filer</p></td><td style="width:20%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9744;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen" id="ixv-12667">Non-accelerated filer</ix:nonNumeric></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9746;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Smaller reporting company</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntitySmallBusiness" format="ixt-sec:boolballotbox" id="ixv-12668">&#9746;</ix:nonNumeric></p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Emerging growth company</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox" id="ixv-12669">&#9744;</ix:nonNumeric></p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. &#9744;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Indicated by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act). Yes <ix:nonNumeric contextRef="From2025-01-01to2025-06-30" name="dei:EntityShellCompany" format="ixt-sec:boolballotbox" id="ixv-12670">&#9744;</ix:nonNumeric>&#160;&#160;&#160;&#160; No &#9746;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Indicate the number of shares outstanding of each of the issuer&#8217;s classes of common stock, as of the latest practicable date.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of shares of common stock outstanding as of August 7, 2025:</strong> <strong><ix:nonFraction contextRef="AsOf2025-08-07" name="dei:EntityCommonStockSharesOutstanding" format="ixt:numdotdecimal" unitRef="Shares" decimals="INF" id="ixv-12671">25,364,244</ix:nonFraction></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="font-size:1px;width:100%"><tbody><tr><td style="BORDER-BOTTOM: 2px solid;"/></tr><tr><td style="BORDER-BOTTOM: 5px solid;"/></tr></tbody></table><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="TEXT-INDENT: 0px;"/></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td>&#160;</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TSS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="TOC">QUARTERLY REPORT ON FORM 10-Q</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the Quarterly Period Ended June 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#SAFE">&#8220;SAFE HARBOR&#8221;&#160;STATEMENT</a></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">ii</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#P1">PART I&#8211;FINANCIAL INFORMATION</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"><a href="#I1">Item 1. Condensed Consolidated Financial Statements</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:right;">1</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"><a href="#MDA">Item 2. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:right;">19</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"><a href="#I3">Item 3. Quantitative and Qualitative Disclosures About Market Risk</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:right;">29</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"><a href="#I4">Item 4. Controls and Procedures</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">29</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#P2">PART II&#8211;OTHER INFORMATION</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">30</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"><a href="#I2">Item 2. Unregistered Sales of Equity Securities and Use of Proceeds</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 15px; text-align:right;">30</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"><a href="#IT6">Item 6. Exhibits</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">31</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="#SIG">SIGNATURES</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">32</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">i</p></td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><span class="atag" style="display: inline" id="SAFE"><strong>&#8220;SAFE HARBOR</strong>&#8221;<strong> STATEMENT</strong></span></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>UNDER THE PRIVATE SECURITIES LITIGATION REFORM ACT OF 1995</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">From time to time, we make oral and written statements that may constitute &#8220;forward-looking statements&#8221; (rather than historical facts) as defined in the Private Securities Litigation Reform Act of 1995 or by the Securities and Exchange Commission (the &#8220;SEC&#8221;) in its rules, regulations and releases, including Section 27A of the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;), and Section 21E of the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;). We desire to take advantage of the &#8220;safe harbor&#8221; provisions in the Private Securities Litigation Reform Act of 1995 for forward looking statements made from time to time, including, but not limited to, the forward- looking statements made in this Annual Report on Form 10-K (the &#8220;Annual Report&#8221;), as well as those made in other filings with the SEC.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Forward looking statements can be identified by our use of forward-looking terminology such as &#8220;may,&#8221; &#8220;will,&#8221; &#8220;expect,&#8221; &#8220;anticipate,&#8221; &#8220;estimate,&#8221; &#8220;believe,&#8221; &#8220;continue,&#8221; &#8220;forecast,&#8221; &#8220;foresee&#8221; or other similar words. Such forward looking statements are based on management&#8217;s current plans and expectations and are subject to risks, uncertainties and changes in plans that could cause actual results to differ materially from those described in the forward-looking statements. Important factors that could cause actual results to differ materially from those anticipated in our forward-looking statements include, but are not limited to, those described under "Risk Factors&#8221; set forth in Item 1A of this Annual Report.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We expressly disclaim any obligation to release publicly any updates or any changes in our expectations or any changes in events, conditions or circumstances on which any forward-looking statement is based.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As used herein, except as otherwise indicated by the context, the terms &#8220;TSS&#8221;, &#8220;Company&#8221;, &#8220;we&#8221;, &#8220;our&#8221; and &#8220;us&#8221; are used to refer to TSS, Inc. and its subsidiaries.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">ii</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><span class="atag" style="display: inline" id="P1">PART I - FINANCIAL INFORMATION</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><span class="atag" style="display: inline" id="I1">Item 1. Condensed Consolidated Financial Statements</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TSS, Inc.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Condensed Consolidated Balance Sheets</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(in thousands except par values)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Current Assets:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt">Cash and cash equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1089" contextRef="AsOf2025-06-30" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">36,836</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1090" contextRef="AsOf2024-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">23,222</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt">Contract and other receivables, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1091" contextRef="AsOf2025-06-30" name="us-gaap:ReceivablesNetCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">13,997</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1092" contextRef="AsOf2024-12-31" name="us-gaap:ReceivablesNetCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,203</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt">Costs and estimated earnings in excess of billings on uncompleted contracts</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1093" contextRef="AsOf2025-06-30" name="us-gaap:ContractWithCustomerAssetNetCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,418</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1094" contextRef="AsOf2024-12-31" name="us-gaap:ContractWithCustomerAssetNetCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">851</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt">Inventories, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1095" contextRef="AsOf2025-06-30" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">14,589</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1096" contextRef="AsOf2024-12-31" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">17,673</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt">Prepaid expenses and other current assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1097" contextRef="AsOf2025-06-30" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,055</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1098" contextRef="AsOf2024-12-31" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">248</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">Total current assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1099" contextRef="AsOf2025-06-30" name="us-gaap:AssetsCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">70,895</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1100" contextRef="AsOf2024-12-31" name="us-gaap:AssetsCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">58,197</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1101" contextRef="AsOf2025-06-30" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">35,288</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1102" contextRef="AsOf2024-12-31" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,591</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1103" contextRef="AsOf2025-06-30" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">22,939</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1104" contextRef="AsOf2024-12-31" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">24,213</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Goodwill</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1105" contextRef="AsOf2025-06-30" name="us-gaap:Goodwill" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">780</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1106" contextRef="AsOf2024-12-31" name="us-gaap:Goodwill" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">780</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Restricted cash</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1107" contextRef="AsOf2025-06-30" name="us-gaap:RestrictedCash" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1108" contextRef="AsOf2024-12-31" name="us-gaap:RestrictedCash" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1109" contextRef="AsOf2025-06-30" name="us-gaap:OtherAssetsNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,568</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1110" contextRef="AsOf2024-12-31" name="us-gaap:OtherAssetsNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,787</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">Total assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1111" contextRef="AsOf2025-06-30" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">139,470</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1112" contextRef="AsOf2024-12-31" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">96,568</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Current Liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt">Accounts payable and accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1114" contextRef="AsOf2025-06-30" name="us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">82,020</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1115" contextRef="AsOf2024-12-31" name="us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">53,340</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt">Deferred revenues, current</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1116" contextRef="AsOf2025-06-30" name="us-gaap:DeferredRevenueCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,333</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1117" contextRef="AsOf2024-12-31" name="us-gaap:DeferredRevenueCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,613</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt">Lease liabilities, current</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1118" contextRef="AsOf2025-06-30" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,891</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1119" contextRef="AsOf2024-12-31" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">966</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">Total current liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1120" contextRef="AsOf2025-06-30" name="us-gaap:LiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">87,244</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1121" contextRef="AsOf2024-12-31" name="us-gaap:LiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">56,919</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Non-current Liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160; Long-term debt, non-current</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1123" contextRef="AsOf2025-06-30" name="us-gaap:LongTermDebtNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">19,541</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1124" contextRef="AsOf2024-12-31" name="us-gaap:LongTermDebtNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,200</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160; Lease liabilities, non-current</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1125" contextRef="AsOf2025-06-30" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">22,648</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1126" contextRef="AsOf2024-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">23,540</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160; Deferred revenues, non-current</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1127" contextRef="AsOf2025-06-30" name="us-gaap:DeferredRevenueNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">499</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1128" contextRef="AsOf2024-12-31" name="us-gaap:DeferredRevenueNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">771</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;&#160;&#160;&#160; Total non-current liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1129" contextRef="AsOf2025-06-30" name="us-gaap:LiabilitiesNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">42,688</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1130" contextRef="AsOf2024-12-31" name="us-gaap:LiabilitiesNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">32,511</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">&#160; Total liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1131" contextRef="AsOf2025-06-30" name="us-gaap:Liabilities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">129,932</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1132" contextRef="AsOf2024-12-31" name="us-gaap:Liabilities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">89,430</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Commitments and Contingencies (Note 1)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Stockholders&#8217; Equity:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">Preferred stock, $<ix:nonFraction id="fid_907" contextRef="AsOf2025-06-30" name="us-gaap:PreferredStockParOrStatedValuePerShare" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.0001</ix:nonFraction> par value; <ix:nonFraction id="fid_909" contextRef="AsOf2025-06-30" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,000</ix:nonFraction> shares authorized; none issued</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1135" contextRef="AsOf2025-06-30" name="us-gaap:PreferredStockValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1136" contextRef="AsOf2024-12-31" name="us-gaap:PreferredStockValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">Common stock, $<ix:nonFraction id="fid_899" contextRef="AsOf2025-06-30" name="us-gaap:CommonStockParOrStatedValuePerShare" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.0001</ix:nonFraction> par value; <ix:nonFraction id="fid_901" contextRef="AsOf2025-06-30" name="us-gaap:CommonStockSharesAuthorized" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">49,000</ix:nonFraction> shares authorized; <ix:nonFraction id="fid_904" contextRef="AsOf2025-06-30" name="us-gaap:CommonStockSharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">25,975</ix:nonFraction> and <ix:nonFraction id="fid_903" contextRef="AsOf2024-12-31" name="us-gaap:CommonStockSharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">25,250</ix:nonFraction> issued; <ix:nonFraction id="fid_906" contextRef="AsOf2025-06-30" name="us-gaap:CommonStockSharesOutstanding" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,740</ix:nonFraction> and <ix:nonFraction id="fid_905" contextRef="AsOf2024-12-31" name="us-gaap:CommonStockSharesOutstanding" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,107</ix:nonFraction> outstanding at June 30, 2025 and December 31, 2024, respectively</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1137" contextRef="AsOf2025-06-30" name="us-gaap:CommonStockValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1138" contextRef="AsOf2024-12-31" name="us-gaap:CommonStockValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">Additional paid-in capital</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1139" contextRef="AsOf2025-06-30" name="us-gaap:AdditionalPaidInCapital" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">76,058</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1140" contextRef="AsOf2024-12-31" name="us-gaap:AdditionalPaidInCapital" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">74,200</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">Treasury stock, at cost; <ix:nonFraction id="fid_914" contextRef="AsOf2025-06-30" name="us-gaap:TreasuryStockCommonShares" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,975</ix:nonFraction> and <ix:nonFraction id="fid_913" contextRef="AsOf2024-12-31" name="us-gaap:TreasuryStockCommonShares" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,849</ix:nonFraction> shares at June 30, 2025 and December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1141" contextRef="AsOf2025-06-30" name="tssi:TreasuryStocksCommonValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">10,650</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1142" contextRef="AsOf2024-12-31" name="tssi:TreasuryStocksCommonValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">6,730</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0.25in">Accumulated deficit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1143" contextRef="AsOf2025-06-30" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">55,873</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1144" contextRef="AsOf2024-12-31" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">60,335</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 27pt">Total stockholders&#8217; equity</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1145" contextRef="AsOf2025-06-30" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,538</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1146" contextRef="AsOf2024-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,138</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 27pt">Total liabilities and stockholders&#8217; equity</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1147" contextRef="AsOf2025-06-30" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">139,470</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1148" contextRef="AsOf2024-12-31" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">96,568</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">See accompanying notes to the condensed consolidated financial statements.&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">1</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TSS, Inc.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Unaudited Consolidated Statements of Operations</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(in thousands, except per-share amounts)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 1pt; text-align:center;"><strong>Three Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 1pt; text-align:center;"><strong>June 30</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Revenues:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Procurement</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1150" contextRef="From2025-04-01to2025-06-30" name="tssi:RevenueFromProcurement" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">33,002</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1151" contextRef="From2024-04-01to2024-06-30" name="tssi:RevenueFromProcurement" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,914</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1152" contextRef="From2025-01-01to2025-06-30" name="tssi:RevenueFromProcurement" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">123,179</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1153" contextRef="From2024-01-01to2024-06-30" name="tssi:RevenueFromProcurement" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,538</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Facilities management</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1154" contextRef="From2025-04-01to2025-06-30" name="tssi:RevenueFromFacilitiesManagement" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,482</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1155" contextRef="From2024-04-01to2024-06-30" name="tssi:RevenueFromFacilitiesManagement" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,285</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1156" contextRef="From2025-01-01to2025-06-30" name="tssi:RevenueFromFacilitiesManagement" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,780</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1157" contextRef="From2024-01-01to2024-06-30" name="tssi:RevenueFromFacilitiesManagement" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,431</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">System integration</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1158" contextRef="From2025-04-01to2025-06-30" name="tssi:RevenueFromSystemIntegration" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,486</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1159" contextRef="From2024-04-01to2024-06-30" name="tssi:RevenueFromSystemIntegration" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,960</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1160" contextRef="From2025-01-01to2025-06-30" name="tssi:RevenueFromSystemIntegration" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,970</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1161" contextRef="From2024-01-01to2024-06-30" name="tssi:RevenueFromSystemIntegration" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,083</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1162" contextRef="From2025-04-01to2025-06-30" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">43,970</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1163" contextRef="From2024-04-01to2024-06-30" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">12,159</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1164" contextRef="From2025-01-01to2025-06-30" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">142,929</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1165" contextRef="From2024-01-01to2024-06-30" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">28,052</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1166" contextRef="From2025-04-01to2025-06-30" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">36,155</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1167" contextRef="From2024-04-01to2024-06-30" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,623</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1168" contextRef="From2025-01-01to2025-06-30" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">125,904</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1169" contextRef="From2024-01-01to2024-06-30" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">20,802</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1170" contextRef="From2025-04-01to2025-06-30" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,815</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1171" contextRef="From2024-04-01to2024-06-30" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,536</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1172" contextRef="From2025-01-01to2025-06-30" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">17,025</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1173" contextRef="From2024-01-01to2024-06-30" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating expenses:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Selling, general and administrative</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1175" contextRef="From2025-04-01to2025-06-30" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,735</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1176" contextRef="From2024-04-01to2024-06-30" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,719</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1177" contextRef="From2025-01-01to2025-06-30" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,622</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1178" contextRef="From2024-01-01to2024-06-30" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,108</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1179" contextRef="From2025-04-01to2025-06-30" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">844</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1180" contextRef="From2024-04-01to2024-06-30" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">117</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1181" contextRef="From2025-01-01to2025-06-30" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,054</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1182" contextRef="From2024-01-01to2024-06-30" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">188</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1183" contextRef="From2025-04-01to2025-06-30" name="us-gaap:OperatingExpenses" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,579</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1184" contextRef="From2024-04-01to2024-06-30" name="us-gaap:OperatingExpenses" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,836</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1185" contextRef="From2025-01-01to2025-06-30" name="us-gaap:OperatingExpenses" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">10,676</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1186" contextRef="From2024-01-01to2024-06-30" name="us-gaap:OperatingExpenses" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,296</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Income from operations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1187" contextRef="From2025-04-01to2025-06-30" name="us-gaap:OperatingIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,236</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1188" contextRef="From2024-04-01to2024-06-30" name="us-gaap:OperatingIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,700</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1189" contextRef="From2025-01-01to2025-06-30" name="us-gaap:OperatingIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">6,349</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1190" contextRef="From2024-01-01to2024-06-30" name="us-gaap:OperatingIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,954</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1191" contextRef="From2025-04-01to2025-06-30" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">859</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1192" contextRef="From2024-04-01to2024-06-30" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">378</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1193" contextRef="From2025-01-01to2025-06-30" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,327</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1194" contextRef="From2024-01-01to2024-06-30" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">706</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1195" contextRef="From2025-04-01to2025-06-30" name="us-gaap:InterestIncomeOther" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">175</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1196" contextRef="From2024-04-01to2024-06-30" name="us-gaap:InterestIncomeOther" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">106</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1197" contextRef="From2025-01-01to2025-06-30" name="us-gaap:InterestIncomeOther" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">558</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1198" contextRef="From2024-01-01to2024-06-30" name="us-gaap:InterestIncomeOther" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">205</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1199" contextRef="From2025-04-01to2025-06-30" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,552</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1200" contextRef="From2024-04-01to2024-06-30" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,428</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1201" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,580</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1202" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,453</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1203" contextRef="From2025-04-01to2025-06-30" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">69</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1204" contextRef="From2024-04-01to2024-06-30" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">26</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1205" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">118</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1206" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">36</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1207" contextRef="From2025-04-01to2025-06-30" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,483</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1208" contextRef="From2024-04-01to2024-06-30" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,402</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1209" contextRef="From2025-01-01to2025-06-30" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,462</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1210" contextRef="From2024-01-01to2024-06-30" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,417</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Earnings per common share - Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1211" contextRef="From2025-04-01to2025-06-30" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1212" contextRef="From2024-04-01to2024-06-30" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1213" contextRef="From2025-01-01to2025-06-30" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.19</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1214" contextRef="From2024-01-01to2024-06-30" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Earnings per common share - Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1215" contextRef="From2025-04-01to2025-06-30" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1216" contextRef="From2024-04-01to2024-06-30" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1217" contextRef="From2025-01-01to2025-06-30" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.17</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1218" contextRef="From2024-01-01to2024-06-30" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">See accompanying notes to the condensed consolidated financial statements.&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">2</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TSS, Inc.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Unaudited Condensed Consolidated Statements of Changes in Stockholders</strong>&#8217;<strong> Equity </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(in thousands)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Additional</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Common Stock</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Paid-in</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Treasury Stock</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Stockholders&#8217;</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Capital</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Deficit</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Equity </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance January 1, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1219" contextRef="AsOf2023-12-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,533</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1221" contextRef="AsOf2023-12-31_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1222" contextRef="AsOf2023-12-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">72,103</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1220" contextRef="AsOf2023-12-31_tssi_TreasuryCommonSharesMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,762</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1223" contextRef="AsOf2023-12-31_tssi_TreasuryCommonSharesMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,245</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1224" contextRef="AsOf2023-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">66,311</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1225" contextRef="AsOf2023-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,549</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Restricted stock vested</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1226" contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">376</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1228" contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1229" contextRef="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1230" contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1231" contextRef="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1232" contextRef="From2024-01-01to2024-03-31" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Treasury shares repurchased</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1235" contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1236" contextRef="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1234" contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember" name="tssi:TreasuryStockSharesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">120</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1237" contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">55</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1238" contextRef="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1239" contextRef="From2024-01-01to2024-03-31" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">55</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Stock-based compensation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1240" contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1241" contextRef="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">150</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1242" contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1243" contextRef="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1244" contextRef="From2024-01-01to2024-03-31" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">150</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1245" contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1246" contextRef="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1247" contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1248" contextRef="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">15</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1249" contextRef="From2024-01-01to2024-03-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">15</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at March 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1250" contextRef="AsOf2024-03-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,909</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1252" contextRef="AsOf2024-03-31_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1253" contextRef="AsOf2024-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">72,253</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1251" contextRef="AsOf2024-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,882</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1254" contextRef="AsOf2024-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,300</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1255" contextRef="AsOf2024-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">66,296</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1256" contextRef="AsOf2024-03-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,659</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Restricted stock vested</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1257" contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">135</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1259" contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1260" contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1261" contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1262" contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1263" contextRef="From2024-04-01to2024-06-30" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Stock options exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1264" contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">200</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1266" contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1267" contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">20</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1265" contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">15</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1268" contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">20</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1269" contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1270" contextRef="From2024-04-01to2024-06-30" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Treasury shares repurchased</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1273" contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1274" contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1272" contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember" name="tssi:TreasuryStockSharesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">45</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1275" contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">62</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1276" contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1277" contextRef="From2024-04-01to2024-06-30" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">62</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Stock-based compensation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1278" contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1279" contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">155</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1280" contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1281" contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1282" contextRef="From2024-04-01to2024-06-30" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">155</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1283" contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1284" contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1285" contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1286" contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,402</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1287" contextRef="From2024-04-01to2024-06-30" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,402</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at June 30, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1288" contextRef="AsOf2024-06-30_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">24,244</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1290" contextRef="AsOf2024-06-30_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1291" contextRef="AsOf2024-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">72,428</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1289" contextRef="AsOf2024-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,942</ix:nonFraction> </td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1292" contextRef="AsOf2024-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,382</ix:nonFraction> </td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1293" contextRef="AsOf2024-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">64,894</ix:nonFraction> </td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1294" contextRef="AsOf2024-06-30" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,154</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Additional</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Common Stock</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Paid-in</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Treasury Stock</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Stockholders&#8217;</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Capital</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Deficit</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Equity </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance January 1, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1295" contextRef="AsOf2024-12-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">25,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1297" contextRef="AsOf2024-12-31_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1298" contextRef="AsOf2024-12-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">74,200</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1296" contextRef="AsOf2024-12-31_tssi_TreasuryCommonSharesMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,849</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1299" contextRef="AsOf2024-12-31_tssi_TreasuryCommonSharesMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">6,730</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1300" contextRef="AsOf2024-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">60,335</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1301" contextRef="AsOf2024-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,138</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Restricted stock vested</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1302" contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">473</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1304" contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1305" contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1306" contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1307" contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1308" contextRef="From2025-01-01to2025-03-31" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Stock options exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1309" contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">70</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1311" contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1312" contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1313" contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1314" contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1315" contextRef="From2025-01-01to2025-03-31" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Treasury shares repurchased</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1318" contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1319" contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1317" contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember" name="tssi:TreasuryStockSharesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">124</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1320" contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,654</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1321" contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1322" contextRef="From2025-01-01to2025-03-31" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,654</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Stock-based compensation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1323" contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1324" contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">921</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1325" contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1326" contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1327" contextRef="From2025-01-01to2025-03-31" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">921</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1328" contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1329" contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1330" contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1331" contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,979</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1332" contextRef="From2025-01-01to2025-03-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,979</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at March 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1333" contextRef="AsOf2025-03-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">25,793</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1335" contextRef="AsOf2025-03-31_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1336" contextRef="AsOf2025-03-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">75,128</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1334" contextRef="AsOf2025-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,973</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1337" contextRef="AsOf2025-03-31_tssi_TreasuryCommonSharesMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,384</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1338" contextRef="AsOf2025-03-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">57,356</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1339" contextRef="AsOf2025-03-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,391</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Restricted stock vested</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1340" contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">279</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1342" contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1343" contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1344" contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1345" contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1346" contextRef="From2025-04-01to2025-06-30" name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Treasury shares repurchased</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1349" contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1350" contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1348" contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember" name="tssi:TreasuryStockSharesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">99</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1351" contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,266</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1352" contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1353" contextRef="From2025-04-01to2025-06-30" name="tssi:TreasuryStockValuesAcquiredCostMethod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,266</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Treasury shares retired</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1354" contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember" name="us-gaap:TreasuryStockSharesRetired" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">97</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1356" contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember" name="us-gaap:TreasuryStockRetiredCostMethodAmount" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1357" contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:TreasuryStockRetiredCostMethodAmount" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1355" contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:TreasuryStockSharesRetired" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">97</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1358" contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:TreasuryStockRetiredCostMethodAmount" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1359" contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:TreasuryStockRetiredCostMethodAmount" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1360" contextRef="From2025-04-01to2025-06-30" name="us-gaap:TreasuryStockRetiredCostMethodAmount" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Stock-based compensation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1361" contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1362" contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">930</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1363" contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1364" contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1365" contextRef="From2025-04-01to2025-06-30" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">930</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1366" contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1367" contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1368" contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:NetIncomeLoss" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1369" contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,483</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1370" contextRef="From2025-04-01to2025-06-30" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,483</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at June 30, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1371" contextRef="AsOf2025-06-30_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">25,975</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1373" contextRef="AsOf2025-06-30_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1374" contextRef="AsOf2025-06-30_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">76,058</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1372" contextRef="AsOf2025-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,975</ix:nonFraction> </td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1375" contextRef="AsOf2025-06-30_tssi_TreasuryCommonSharesMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">10,650</ix:nonFraction> </td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1376" contextRef="AsOf2025-06-30_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">55,873</ix:nonFraction> </td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1377" contextRef="AsOf2025-06-30" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,538</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">See accompanying notes to the condensed consolidated financial statements.&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">3</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TSS, Inc.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Unaudited Condensed Consolidated Statements of Cash Flows</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(in thousands)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Flows from Operating Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1379" contextRef="From2025-01-01to2025-06-30" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,462</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1380" contextRef="From2024-01-01to2024-06-30" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,417</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Adjustments to reconcile net income to net cash provided by (used in) operating activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Depreciation and amortization</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1382" contextRef="From2025-01-01to2025-06-30" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,054</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1383" contextRef="From2024-01-01to2024-06-30" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">188</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Stock-based compensation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1384" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ShareBasedCompensation" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,851</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1385" contextRef="From2024-01-01to2024-06-30" name="us-gaap:ShareBasedCompensation" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">305</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Provision for inventory reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1386" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ProvisionForOtherCreditLosses" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1387" contextRef="From2024-01-01to2024-06-30" name="us-gaap:ProvisionForOtherCreditLosses" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Amortization of debt issuance costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1388" contextRef="From2025-01-01to2025-06-30" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1389" contextRef="From2024-01-01to2024-06-30" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Changes in operating assets and liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">Contract and other receivables</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1391" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncreaseDecreaseInReceivables" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">2,206</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1392" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncreaseDecreaseInReceivables" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,468</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">Costs and estimated earnings in excess of billings on uncompleted contracts</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1393" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncreaseDecreaseInUnbilledReceivables" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,567</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1394" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncreaseDecreaseInUnbilledReceivables" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">786</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">Inventories</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1395" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">3,084</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1396" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,596</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">Prepaid expenses and other assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1397" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">679</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1398" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">286</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">Right-of-use assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1399" contextRef="From2025-01-01to2025-06-30" name="tssi:IncreaseDecreaseInRightOfUseAsset" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">1,274</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1400" contextRef="From2024-01-01to2024-06-30" name="tssi:IncreaseDecreaseInRightOfUseAsset" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">272</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">Accounts payable and accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1401" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">26,799</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1402" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">669</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">Deferred revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1403" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncreaseDecreaseInDeferredRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">448</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1404" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncreaseDecreaseInDeferredRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,634</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">Operating lease liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1405" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncreaseDecreaseInOperatingLeaseLiability" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">33</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1406" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncreaseDecreaseInOperatingLeaseLiability" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">265</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net cash provided by (used in) operating activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1407" contextRef="From2025-01-01to2025-06-30" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">36,973</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1408" contextRef="From2024-01-01to2024-06-30" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">1,682</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Flows from Investing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1410" contextRef="From2025-01-01to2025-06-30" name="us-gaap:PaymentsToAcquireProductiveAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">25,779</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1411" contextRef="From2024-01-01to2024-06-30" name="us-gaap:PaymentsToAcquireProductiveAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,721</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net cash used in investing activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1412" contextRef="From2025-01-01to2025-06-30" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">25,779</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1413" contextRef="From2024-01-01to2024-06-30" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">1,721</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Flows from Financing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Proceeds from issuance of long-term debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1415" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ProceedsFromIssuanceOfSeniorLongTermDebt" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">11,333</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1416" contextRef="From2024-01-01to2024-06-30" name="us-gaap:ProceedsFromIssuanceOfSeniorLongTermDebt" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Proceeds from exercise of stock options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1417" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1418" contextRef="From2024-01-01to2024-06-30" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Repurchase of treasury stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1419" contextRef="From2025-01-01to2025-06-30" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,920</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1420" contextRef="From2024-01-01to2024-06-30" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">117</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net cash provided by (used in) financing activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1421" contextRef="From2025-01-01to2025-06-30" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,420</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1422" contextRef="From2024-01-01to2024-06-30" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">117</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net increase (decrease) in cash, cash equivalents and restricted cash</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1423" contextRef="From2025-01-01to2025-06-30" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">18,614</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1424" contextRef="From2024-01-01to2024-06-30" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">3,520</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash, cash equivalents and restricted cash, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1425" contextRef="AsOf2024-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">23,222</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1449" contextRef="AsOf2023-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">11,831</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash, cash equivalents and restricted cash, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">41,836</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1450" contextRef="AsOf2024-06-30" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,311</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Supplemental disclosures of cash flow information:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cash paid for interest, net of amounts capitalized</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1430" contextRef="From2025-01-01to2025-06-30" name="us-gaap:InterestPaidNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,327</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1431" contextRef="From2024-01-01to2024-06-30" name="us-gaap:InterestPaidNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">537</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cash paid for taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1432" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncomeTaxesPaidNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">201</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1433" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncomeTaxesPaidNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">79</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cash and cash equivalents, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1434" contextRef="From2025-01-01to2025-06-30" name="tssi:CashAndCashEquivalentsBeginningOfPeriod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">23,222</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1435" contextRef="From2024-01-01to2024-06-30" name="tssi:CashAndCashEquivalentsBeginningOfPeriod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">11,831</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Restricted cash, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1436" contextRef="From2025-01-01to2025-06-30" name="tssi:RestrictedCashBeginningOfPeriod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1437" contextRef="From2024-01-01to2024-06-30" name="tssi:RestrictedCashBeginningOfPeriod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cash, cash equivalents and restricted cash, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1438" contextRef="From2025-01-01to2025-06-30" name="tssi:CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">23,222</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1439" contextRef="From2024-01-01to2024-06-30" name="tssi:CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">11,831</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cash and cash equivalents, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1440" contextRef="From2025-01-01to2025-06-30" name="tssi:CashAndCashEquivalentsEndOfPeriod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">36,836</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1441" contextRef="From2024-01-01to2024-06-30" name="tssi:CashAndCashEquivalentsEndOfPeriod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,311</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Restricted cash, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1442" contextRef="From2025-01-01to2025-06-30" name="tssi:RestrictedCashEndOfPeriod" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1443" contextRef="From2024-01-01to2024-06-30" name="tssi:RestrictedCashEndOfPeriod" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cash, cash equivalents and restricted cash, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1444" contextRef="From2025-01-01to2025-06-30" name="tssi:CashCashEquivalentsAndRestrictedCashEndOfPeriods" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">41,836</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1445" contextRef="From2024-01-01to2024-06-30" name="tssi:CashCashEquivalentsAndRestrictedCashEndOfPeriods" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,311</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Supplemental non-cash investing activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Additions to capital expenditures financed with accounts payable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1447" contextRef="From2025-01-01to2025-06-30" name="tssi:NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,881</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1448" contextRef="From2024-01-01to2024-06-30" name="tssi:NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">See accompanying notes to the condensed consolidated financial statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">4</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TSS, Inc.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Notes to Condensed Consolidated Statements</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1020" contextRef="From2025-01-01to2025-06-30" name="us-gaap:SignificantAccountingPoliciesTextBlock" escape="true" continuedAt="cont_f9984a"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 1 </strong>&#8211;<strong> Significant Accounting Policies</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><em>Description of Business</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">TSS, Inc. ("TSS&#8221;, the "Company&#8221;, "we&#8221;, "us&#8221; or "our&#8221;) provides a comprehensive suite of services for the planning, design, deployment, maintenance and refresh of end-user and enterprise systems, including the mission-critical facilities in which they are housed. We provide a single source solution for enabling technologies in data centers, operations centers, network facilities, server rooms, security operations centers, communications facilities and the infrastructure systems that are critical to their function. Our services consist of technology consulting, design and engineering, project management, systems integration, systems installation, facilities management and IT procurement services. Beginning in 2024, our systems integration services have been enhanced to include integration of Artificial Intelligence (AI) enabled data center server racks.&#160; TSS was incorporated in Delaware in December 2004.&#160; We recently relocated our corporate offices and primary integration facility from Round Rock, Texas to Georgetown, Texas and continue to operate a second integration facility at our former corporate office in Round Rock, Texas.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The preparation of the condensed consolidated financial statements in accordance with accounting principles generally accepted in the United States of America ("U. S. GAAP&#8221;) requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenues and expenses and related disclosure of contingent assets and liabilities. On an ongoing basis, we evaluate our estimates which are based on historical experience and on various other assumptions that we believe are reasonable under the circumstances, the results of which form a basis for making judgments about the carrying value of assets and liabilities that are not readily apparent from other sources. Actual results may differ from these estimates under different assumptions or conditions; however, we believe that our estimates are reasonable and that the actual results will not vary significantly from the estimated amounts.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Basis of Presentation</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1032" contextRef="From2025-01-01to2025-06-30" name="us-gaap:BasisOfAccountingPolicyPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The accompanying condensed consolidated balance sheet as of December 31, 2024, which has been derived from audited consolidated financial statements, and the unaudited interim condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#8220;GAAP&#8221;) for interim financial statements and pursuant to the rules and regulations of the SEC for interim reporting and include the accounts of the Company and its consolidated subsidiaries. In the opinion of management, the accompanying unaudited condensed consolidated financial statements contain all adjustments (consisting only of normal recurring items) necessary to present fairly the consolidated financial position of the Company and its consolidated results of operations, changes in stockholders&#8217; equity and cash flows. These interim condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and accompanying notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Certain prior year amounts have been reclassified to conform to the current presentation.&#160; The reclassifications are:&#160; (i) on our statements of operations, we now present revenues from each individual segment whereas the prior year revenues were all presented on a single line item; (ii) on our statements of operations, we now present interest expense and interest income separately whereas we presented a single amount &#8220;interest expense, net&#8221; in the prior year presentation and (iii) we recast the segment disclosures to present our procurement services as a separate segment consistent with the current year presentation whereas those results were aggregated into the systems integration segment in the prior year presentation.&#160; These reclassifications had no net effect on our reported results of operations, financial position or cash flows.&#160; </p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Principles of Consolidation</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1034" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ConsolidationPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The condensed consolidated financial statements include the accounts of the Company and its wholly owned subsidiary. All intercompany accounts and transactions have been eliminated in consolidation.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Financial Instruments</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1035" contextRef="From2025-01-01to2025-06-30" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" escape="true" continuedAt="cont_6c735c"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The Company&#8217;s financial instruments consist primarily of cash and cash equivalents, including money market accounts, and debt.&#160;<em> </em></p></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">5</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_f9984a" continuedAt="cont_2bf8b5"><ix:continuation id="cont_6c735c"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Based primarily on the short-term nature of cash and cash equivalents, we estimate that their carrying amount approximates their fair value at June 30, 2025 and December 31, 2024.&#160; We consider the fair value of our cash and cash equivalents, including money market accounts, to be measured using Level 1 inputs.&#160; &#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As it does not have a quoted market price and its term extends beyond a year, requiring more judgment, we consider our debt balance to be measured using Level 2 inputs.&#160; As the debt bears a floating interest rate that is adjusted frequently in line with movements in prevailing interest rates that would be used to discount any future cash flows, we estimate that its carrying value approximates its fair value.&#160; </p></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Accounting for Business Combinations</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1036" contextRef="From2025-01-01to2025-06-30" name="us-gaap:BusinessCombinationsPolicy" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We allocate the purchase price of an acquired business to its identifiable assets and liabilities based on estimated fair values. The excess of the purchase price over the fair value of the assets acquired and liabilities assumed, if any, is recorded as goodwill.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We use all available information to estimate fair values. We typically engage outside appraisal firms to assist in the fair value determination of identifiable intangible assets such as customer contracts, leases, and any other significant assets or liabilities and contingent consideration. Preliminary purchase price allocation is adjusted, as necessary, up to one year after the acquisition closing date if management obtains more information regarding asset valuations and liabilities assumed.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Revenue Recognition</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1037" contextRef="From2025-01-01to2025-06-30" name="us-gaap:RevenueRecognitionPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We recognize revenues when control of the promised goods or services is transferred to our customers in an amount that reflects the consideration we expect to be entitled to in exchange for those goods or services.&#160; Some of our contracts with customers contain multiple performance obligations. For these contracts, we account for individual performance obligations separately if they are distinct. The transaction price is allocated to the separate performance obligations based on relative stand-alone selling prices.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Maintenance services</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1941" contextRef="From2025-01-01to2025-06-30" name="tssi:MaintenanceServicesPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate maintenance services revenues from fees that provide our customers with as-needed maintenance and repair services on modular data centers during the contract term. Our contract terms typically are one year in duration, are billed annually in advance, and are non-cancelable. As a result, we record deferred revenue (a contract liability) and recognize revenue from these services ratably over the contract term. We can mitigate our exposure to credit losses by discontinuing services in the event of non-payment.&#160;However, our history of non-payments and bad debt expenses has been insignificant.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Integration services</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1940" contextRef="From2025-01-01to2025-06-30" name="tssi:IntegrationServicesPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate integration services revenues by providing our customers with customized systems and rack-level integration services. We recognize revenue upon shipment to the customer of the completed systems as this is when we have completed our services and when the customer obtains control of the promised goods.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Pursuant to a multi-year agreement signed in 2024, we also recognize revenue monthly at contractually based amounts for certain billable fixed and facility costs and trained staffing levels to support the weekly quantity of AI-enabled racks, with staffing fees reduced for any under-staffing. The fee for staffing is based on defined services as transferred to the customer and are not variable consideration because the customer&#8217;s usage is known weekly and is not contingent on the occurrence of any future events or subject to any estimation.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We typically extend credit terms to our integration customers based on their creditworthiness and generally do not receive advance payments. As such, we record accounts receivable at the time of shipment, when our right to the consideration becomes unconditional. Accounts receivable from our integration customers are typically due within 30-105 days of invoicing. An allowance for credit losses is provided based on a periodic analysis of individual account balances, including an evaluation of days outstanding, payment history, recent payment trends, and our assessment of our customers&#8217; creditworthiness. Our allowance for credit losses was $<ix:nonFraction id="fid_1517" contextRef="AsOf2025-06-30" name="tssi:AllowanceForDoubtfulAccounts" format="ixt:numdotdecimal" unitRef="USD" decimals="0">21,000</ix:nonFraction> and $<ix:nonFraction id="fid_1506" contextRef="AsOf2024-12-31" name="tssi:AllowanceForDoubtfulAccounts" format="ixt:numdotdecimal" unitRef="USD" decimals="0">7,000</ix:nonFraction> on June 30, 2025 and December 31, 2024, respectively.&#160; </p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Equipment and Material sales</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1939" contextRef="From2025-01-01to2025-06-30" name="tssi:EquipmentAndMaterialSalesPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues under fixed price contracts from the sale of data center and related ancillary equipment or materials to customers in the United States. We recognize revenue when the product is shipped to the customer as that is when the customer obtains control of the promised goods and when we have completed our contractual obligations. Typically, we do not receive advance payments for equipment or material sales; however, if we do, we record the advance payment as deferred revenues. Normally we record accounts receivable at the time of shipment, when our right to the consideration has become unconditional. Accounts receivable from our equipment and material sales are typically due within 30-45 days of invoicing.</p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">6</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_2bf8b5" continuedAt="cont_a86659"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Deployment and Other services</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1938" contextRef="From2025-01-01to2025-06-30" name="tssi:DeploymentAndOtherServicesPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues from fees we charge our customers for other services, including repairs or other services not covered under maintenance contracts; installation and servicing of equipment, including modular data centers; and other fixed-price services including repair, design and project management services, or the moving of equipment to a different location. In some cases, we arrange for a third party to perform &#8220;break-fix&#8221; and servicing of equipment upon customer request, and in these instances, we recognize revenue as the amount of any fees or commissions to which we expect to be entitled. Other services are typically invoiced upon completion of services or completion of milestones. We record accounts receivable at the time of completion when our right to consideration becomes unconditional.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Procurement services</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1937" contextRef="From2025-01-01to2025-06-30" name="tssi:ProcurementServicesPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues from fees we charge our customers to procure third-party hardware, software and professional services on their behalf, some of which are then used in our integration services as we integrate these components to deliver a completed system to our customer. We recognize our procurement services revenues upon completion of the procurement activity. For any procurement activities in which we somehow transform the product, the revenues recognized on these transactions are the gross sales amount of the transaction, and we recognize offsetting costs of sales for any costs we incur to procure the related goods (&#8220;gross deals&#8221;).&#160; In some cases, we arrange for the purchase of third-party hardware, software or professional services that are to be provided directly to our customers by another party, we have no control of the goods before they are transferred to the customer and we do not transform the product in any way. In these instances, we are acting as an agent in the transaction and recognize revenue on a net basis, recording only the amount of any fee or commissions to which we expect to be entitled after paying the other party for the goods or services provided to the customer (&#8220;net deals&#8221;). Accounts receivable from our procurement activities are typically due within 80 days of invoicing.&#160; The majority of the procurement activities generally involve us transforming the product, and as such the majority of these transactions are recorded gross.&#160; In order to accelerate the time period in which we receive payment, we generally factor the procurement services receivables utilizing a program that we estimate has an effective annualized interest rate below the rate at which we could borrow funds.&#160; Regardless of whether the transaction is recorded as a gross deal or a net deal, the interest we are charged through the factoring program is based on the gross value of each transaction.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table presents our revenues disaggregated by reportable segment and by product or service type (in &#8217;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1055" contextRef="From2025-01-01to2025-06-30" name="us-gaap:DisaggregationOfRevenueTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">FACILITIES MANAGEMENT:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Maintenance revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1452" contextRef="From2025-04-01to2025-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,026</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1466" contextRef="From2024-04-01to2024-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,293</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1469" contextRef="From2025-01-01to2025-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,899</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1470" contextRef="From2024-01-01to2024-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,598</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Equipment sales, deployment and other services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1453" contextRef="From2025-04-01to2025-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">456</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1461" contextRef="From2024-04-01to2024-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">992</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1477" contextRef="From2025-01-01to2025-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">881</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1478" contextRef="From2024-01-01to2024-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,833</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Facilities Management revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1451" contextRef="From2025-04-01to2025-06-30_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,482</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1459" contextRef="From2024-04-01to2024-06-30_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,285</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1467" contextRef="From2025-01-01to2025-06-30_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,780</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1468" contextRef="From2024-01-01to2024-06-30_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,431</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SYSTEMS INTEGRATION:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Integration services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1454" contextRef="From2025-04-01to2025-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,486</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1462" contextRef="From2024-04-01to2024-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,960</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1482" contextRef="From2025-01-01to2025-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,670</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1480" contextRef="From2024-01-01to2024-06-30_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,083</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Systems Integration revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1455" contextRef="From2025-04-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,486</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1463" contextRef="From2024-04-01to2024-06-30_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,960</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1479" contextRef="From2025-01-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,970</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1481" contextRef="From2024-01-01to2024-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,083</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">PROCUREMENT:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Procurement services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1456" contextRef="From2025-04-01to2025-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">33,002</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1464" contextRef="From2024-04-01to2024-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,914</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1471" contextRef="From2025-01-01to2025-06-30_tssi_ProcurementRevenuesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">123,179</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1472" contextRef="From2024-01-01to2024-06-30_tssi_ProcurementRevenuesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,538</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Procurement revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1457" contextRef="From2025-04-01to2025-06-30_tssi_ProcurementRevenuesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">33,002</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1465" contextRef="From2024-04-01to2024-06-30_tssi_ProcurementRevenuesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,914</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1473" contextRef="From2025-01-01to2025-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">123,179</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1474" contextRef="From2024-01-01to2024-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,538</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">TOTAL REVENUES</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1458" contextRef="From2025-04-01to2025-06-30" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">43,970</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1460" contextRef="From2024-04-01to2024-06-30" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">12,159</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1475" contextRef="From2025-01-01to2025-06-30" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">142,929</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1476" contextRef="From2024-01-01to2024-06-30" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">28,052</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Judgments</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1038" contextRef="From2025-01-01to2025-06-30" name="tssi:JudgmentsPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We consider several factors in determining that control transfers to the customer upon shipment of equipment or upon completion of our services. These factors include that legal title transfers to the customer, we have a present right to payment, and the customer has assumed the risks and rewards of ownership at the time of shipment or completion of the services.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Sales taxes</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1039" contextRef="From2025-01-01to2025-06-30" name="tssi:SalesTaxesPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Sales (and similar) taxes that are imposed on our sales and collected from customers are excluded from revenues.</p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">7</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_a86659" continuedAt="cont_096ada"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Shipping and handling costs</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1040" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ShippingAndHandlingCostPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Costs for shipping and handling activities, including those activities that occur subsequent to transfer of control to the customer, are recorded as cost of revenues and are expensed as incurred. We accrue costs for shipping and handling activities that occur after control of the promised good or service has been transferred to the customer.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Deferred Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1041" contextRef="From2025-01-01to2025-06-30" name="us-gaap:RevenueRecognitionDeferredRevenue" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Remaining performance obligations include deferred revenue and amounts we expect to receive for goods and services that have not yet been delivered or provided under existing, non-cancellable contracts. For contracts that have an original duration of one year or less, we have elected the practical expedient applicable to such contracts and we do not disclose the transaction price for remaining performance obligations at the end of each reporting period and when we expect to recognize this revenue. As of June 30, 2025, deferred revenue of $<ix:nonFraction id="fid_1518" contextRef="AsOf2025-06-30" name="us-gaap:DeferredRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,832,000</ix:nonFraction> includes:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$<ix:nonFraction id="fid_1519" contextRef="AsOf2025-06-30_tssi_MaintenanceContractsObligationsMember" name="us-gaap:DeferredRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,459,000</ix:nonFraction> of our remaining performance obligations for our maintenance contracts, all of which are expected to be recognized within one year, and</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$<ix:nonFraction id="fid_1520" contextRef="AsOf2025-06-30_tssi_ProcurementAndIntegrationServicesMember" name="us-gaap:DeferredRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,373,000</ix:nonFraction> relates to procurement and integration services where we have yet to complete our services for our customers. Of the deferred revenues related to procurement and integration services,</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:12%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">o</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$<ix:nonFraction id="fid_1521" contextRef="AsOf2025-06-30_tssi_ProcurementAndIntegrationServicesMember" name="tssi:DeferredRevenueRelatedToProcurementServices" format="ixt:numdotdecimal" unitRef="USD" decimals="0">874,000</ix:nonFraction> is expected to be recognized within one year, and</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">o</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$<ix:nonFraction id="fid_1522" contextRef="AsOf2025-06-30_tssi_ProcurementAndIntegrationServicesMember" name="tssi:DeferredRevenueRelatedToIntegrationServices" format="ixt:numdotdecimal" unitRef="USD" decimals="0">499,000</ix:nonFraction> is expected to be recognized beyond one year.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Contract liabilities consisting of deferred revenues were $<ix:nonFraction id="fid_1523" contextRef="AsOf2024-12-31" name="us-gaap:ContractWithCustomerLiability" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,384,000</ix:nonFraction> on December 31, 2024, and $<ix:nonFraction id="fid_1513" contextRef="AsOf2023-12-31" name="us-gaap:ContractWithCustomerLiability" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,370,000</ix:nonFraction> on December 31, 2023.&#160; Substantially all of the recorded deferred revenues at December 31, 2024 and December 31, 2023 had been earned and recorded as revenues in the six month periods ended June 30, 2025 and June 30, 2024, respectively.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Concentration of Credit Risk </em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1043" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ConcentrationRiskCreditRisk" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We are currently economically dependent upon our relationship with a large US-based IT OEM (Original Equipment Manufacturer). If this relationship is unsuccessful or discontinues, our business and revenue will suffer. The loss of or a significant reduction in orders from this customer or the failure to provide adequate products or services to it would significantly reduce our revenue.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following customer accounted for a significant percentage of our revenues for the periods shown:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1056" contextRef="From2025-01-01to2025-06-30" name="us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">US-based IT OEM</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1483" contextRef="From2025-04-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember" name="tssi:ConcentrationRiskPercentages" unitRef="Pure" decimals="2" scale="-2">98</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1484" contextRef="From2024-04-01to2024-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember" name="tssi:ConcentrationRiskPercentages" unitRef="Pure" decimals="2" scale="-2">97</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1485" contextRef="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember" name="tssi:ConcentrationRiskPercentages" unitRef="Pure" decimals="2" scale="-2">99</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1486" contextRef="From2024-01-01to2024-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember" name="tssi:ConcentrationRiskPercentages" unitRef="Pure" decimals="2" scale="-2">97</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">No other customers represented more than <ix:nonFraction id="fid_1511" contextRef="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember" name="tssi:ConcentrationRiskPercentageOne" unitRef="Pure" decimals="1" scale="-2">10</ix:nonFraction>% of our revenues for any period presented. Our US-based IT OEM customer represented <ix:nonFraction id="fid_1512" contextRef="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_us-gaap_AccountsReceivableMember" name="tssi:ConcentrationRiskPercentageOne" unitRef="Pure" decimals="2" scale="-2">98</ix:nonFraction>% of our accounts receivable at both June 30, 2025 and December 31, 2024. No other customer represented more than 10% of our accounts receivable at either of those dates.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Non-recourse factoring</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1051" contextRef="From2025-01-01to2025-06-30" name="tssi:NonRecourseFactoringPolicyTextBlock" escape="true" continuedAt="cont_783476"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have entered into a factoring agreement with a financial institution to sell certain of our accounts receivable from a US-based IT OEM customer under a non-recourse agreement. Due to the extended payment terms from that customer, we use this factoring arrangement as the effective interest rate implicit in this arrangement is less than the rate at which we could borrow the funds to carry those receivables through their due date.&#160; Under the arrangement, we sell certain trade receivables on a non-recourse basis and account for the transaction as a sale of the receivable. The financial institution assumes the full risk of collection, without recourse to the Company in the event of a loss. Debtors are directed to send payments directly to the financial institution. The applicable receivables are removed from our consolidated balance sheet when we receive the cash proceeds. We do not service any factored accounts after the factoring has occurred. We utilize this factoring arrangement as part of our financing for working capital. The table below presents information relevant to this factoring program (in $&#8217;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1942" contextRef="From2025-01-01to2025-06-30" name="tssi:ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Aggregate gross amount factored</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1491" contextRef="From2025-04-01to2025-06-30" name="tssi:AggregateGrossAmountFactored" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">72,391</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1492" contextRef="From2024-04-01to2024-06-30" name="tssi:AggregateGrossAmountFactored" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">28,835</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1487" contextRef="From2025-01-01to2025-06-30" name="tssi:AggregateGrossAmountFactored" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">193,484</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1488" contextRef="From2024-01-01to2024-06-30" name="tssi:AggregateGrossAmountFactored" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">50,978</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Financing fees paid</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1493" contextRef="From2025-04-01to2025-06-30" name="us-gaap:PaymentsOfFinancingCosts" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">882</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1494" contextRef="From2024-04-01to2024-06-30" name="us-gaap:PaymentsOfFinancingCosts" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">427</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1489" contextRef="From2025-01-01to2025-06-30" name="us-gaap:PaymentsOfFinancingCosts" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,425</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1490" contextRef="From2024-01-01to2024-06-30" name="us-gaap:PaymentsOfFinancingCosts" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">742</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">8</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_096ada" continuedAt="cont_0d9780"><ix:continuation id="cont_783476"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Financing fees were recorded as interest expense in our consolidated statements of operations or in deferred costs if the interest related to projects for which revenue has not yet been recognized. The total amounts factored exceed our total recorded revenues, as the factoring fees apply to the gross value of receivables collected through the program, while we record only our agent fee on procurement contracts as revenue for any procurement activity that is shipped directly from third parties to the end customer.&#160; </p></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Stock-Based Compensation</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1042" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Stock-based compensation is measured at the grant date based on the fair value of the award and is recognized as expense ratably over the requisite service period, net of estimated forfeitures. For awards with performance-based vesting criteria, we recognize expense only once it is deemed probable that the performance criteria will be met.&#160; We award shares of restricted stock and stock options to employees, managers, executive officers, and directors for both incentive and retention purposes.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">During the three-month and six-month periods ended June 30, 2025, we incurred approximately $<ix:nonFraction id="fid_1525" contextRef="From2025-04-01to2025-06-30" name="us-gaap:OtherNoncashExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">0.9</ix:nonFraction> million and $<ix:nonFraction id="fid_1514" contextRef="From2025-01-01to2025-06-30" name="us-gaap:OtherNoncashExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">1.9</ix:nonFraction> million, respectively, of non-cash stock-based compensation expense.&#160; In the comparable three-month and six-month prior year periods ended June 30, 2024, we incurred approximately $<ix:nonFraction id="fid_1530" contextRef="From2024-04-01to2024-06-30" name="us-gaap:OtherNoncashExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">0.2</ix:nonFraction> million and $<ix:nonFraction id="fid_1529" contextRef="From2024-01-01to2024-06-30" name="us-gaap:OtherNoncashExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">0.3</ix:nonFraction> million, respectively, of non-cash stock-based compensation expense.&#160; In each period, the expense was included in selling, general and administrative expenses in the accompanying Condensed Consolidated Statements of Operations<em>.</em>&#160; </p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Cash, cash equivalents, and restricted cash</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1044" contextRef="From2025-01-01to2025-06-30" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Cash and cash equivalents are comprised of cash in banks and highly liquid instruments with original maturities of three months or less, primarily consisting of bank time deposits. We had unrestricted cash of $<ix:nonFraction id="fid_1516" contextRef="AsOf2025-06-30" name="tssi:UnrestrictedCashBalance" format="ixt:numdotdecimal" unitRef="USD" decimals="-4" scale="5">36.8</ix:nonFraction> million and $<ix:nonFraction id="fid_1505" contextRef="AsOf2024-12-31" name="tssi:UnrestrictedCashBalance" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">18.2</ix:nonFraction> million, almost all of which was beyond FDIC insured limits on June 30, 2025 and December 31, 2024, respectively.&#160; At each of those dates, we additionally had $<ix:nonFraction id="fid_1526" contextRef="AsOf2025-06-30" name="tssi:CashDepositInAMoneyMarketAccount" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">5.0</ix:nonFraction> million of restricted cash in a money market account held by our bank as collateral for our outstanding bank debt, which also exceeded FDIC insured limits.&#160; Under the terms of the loan agreement, we can at any point request that the bank apply the deposit as a reduction of loan principal.&#160; This balance is presented separately on our balance sheet at June 30, 2025 and was classified with cash and cash equivalents at December 31, 2024.&#160; </p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Contract and Other Receivables</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1045" contextRef="From2025-01-01to2025-06-30" name="us-gaap:TradeAndOtherAccountsReceivablePolicy" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Accounts receivables are recorded at the invoiced amount and may bear interest in the event of late payment under certain contracts.&#160;</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Allowance for Credit Losses</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1046" contextRef="From2025-01-01to2025-06-30" name="tssi:ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We estimate an allowance for credit losses based on estimated credit losses, based on factors related to the specific credit risk of each customer. Historically our credit losses have been minimal. We perform credit evaluations of new customers and may require prepayments or the use of bank instruments such as trade letters of credit to mitigate credit risk. We monitor outstanding amounts to limit our credit exposure to individual accounts. We continue to pursue collection even if we have fully provided for an account balance.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table summarizes the changes in our allowance for credit losses (in &#8217;000):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1057" contextRef="From2025-01-01to2025-06-30" name="us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1495" contextRef="AsOf2023-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1496" contextRef="AsOf2024-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Additions charged to expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1497" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">14</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1498" contextRef="From2024-01-01to2024-06-30" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Recovery of amounts previously reserved</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1499" contextRef="From2025-01-01to2025-06-30" name="tssi:RecoveryOfAmountsPreviouslyReserved" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1500" contextRef="From2024-01-01to2024-06-30" name="tssi:RecoveryOfAmountsPreviouslyReserved" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Amounts written off</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1501" contextRef="From2025-01-01to2025-06-30" name="tssi:AmountsWrittenOff" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1502" contextRef="From2024-01-01to2024-06-30" name="tssi:AmountsWrittenOff" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1504" contextRef="AsOf2025-06-30" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">21</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1503" contextRef="AsOf2024-06-30" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">9</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_0d9780" continuedAt="cont_9a067a"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Inventories</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1047" contextRef="From2025-01-01to2025-06-30" name="us-gaap:InventoryPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Inventories are stated at the lower of cost or net realizable value. Cost is determined using the first-in, first-out method for all purchased inventories. We write down obsolete inventory or inventory more than our estimated usage to its estimated realizable value less cost to sell, if less than its cost. Inherent in our estimates of net realizable value in determining inventory valuation are estimates related to future demand and technological obsolescence of our products. Any significant unanticipated changes in demand or technological developments could have a significant impact on the value of our inventories and our results of operations and financial position could be materially affected.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Property and Equipment</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1048" contextRef="From2025-01-01to2025-06-30" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Property and equipment are recorded at cost, including interest incurred during the construction phase of assets financed at least partly with debt. We provide for depreciation using the straight-line method over the estimated useful lives of the assets. Additions and major replacements or improvements are capitalized, while minor replacements and maintenance costs are charged to expense as incurred. Depreciation expense is included in operating expenses in the consolidated statements of operations. The cost and accumulated depreciation of assets sold or retired are removed from the accounts and any gain or loss is included in the results of operations for the period of the transaction.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Goodwill and Intangible Assets</em>&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1049" contextRef="From2025-01-01to2025-06-30" name="us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have recorded goodwill and intangible assets with definite lives, including customer relationships and acquired software, in conjunction with the acquisition of various businesses. These intangible assets are amortized based on their estimated economic lives. Goodwill represents the excess of the purchase price over the fair value of net identified tangible and intangible assets acquired and liabilities assumed, and it is not amortized. The recorded goodwill is allocated to the reporting unit to which the underlying transaction relates.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">U. S. GAAP requires us to perform an impairment test of goodwill on an annual basis or whenever events or circumstances make it more likely than not that impairment of goodwill may have occurred. As part of the annual impairment test, we review for indicators of impairment as &#8220;Step Zero&#8221; of the annual impairment test as defined by U.S. GAAP and if any exist, we compare the fair value of the reporting unit with its carrying amount. If that fair value exceeds the carrying amount, no impairment charge is required to be recorded. If the carrying value exceeds the reporting unit&#8217;s fair value, we would recognize a goodwill impairment charge for the amount by which the carrying amount exceeds the reporting unit&#8217;s fair value. However, the impairment loss recognized cannot exceed the total amount of goodwill allocated to that reporting unit. If necessary, the fair value of a reporting unit will be determined using a discounted cash flow analysis, which requires the use of estimates and assumptions. Significant assumptions that may be required include forecasted operating results and the determination of an appropriate discount rate. Actual results may differ from forecasted results, which may have a material impact on the conclusions reached.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We also review intangible assets with definite lives for impairment whenever events or circumstances indicate that the carrying amount may not be recoverable. If the sum of the expected undiscounted cash flows is less than the carrying value of the related asset, a loss is recognized for the difference between the fair value and carrying value of the intangible asset.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have elected to use December 31 as our annual assessment date. As circumstances change that could affect the recoverability of the carrying amount of the assets during an interim period, we will evaluate our indefinite lived intangible assets for impairment.&#160;At our most recent annual assessment date of December 31, 2024, we identified no such indicators of impairment and determined there was no impairment at that date.&#160; In the quarter ended June 30, 2025, we considered relevant matters including macroeconomic and other conditions on our operations and noted no material triggering events or circumstances that occurred during that period that would indicate the carrying value of our goodwill or other long-lived intangible assets was impaired.&#160; On June 30, 2025 and December 31, 2024, the carrying value of goodwill was $<ix:nonFraction id="fid_1527" contextRef="AsOf2025-06-30" name="tssi:Goodwills" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">0.8</ix:nonFraction> million.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Income Taxes</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1050" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncomeTaxPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Deferred income taxes are provided for the temporary differences between the financial reporting and tax basis of the Company&#8217;s assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. The U.S. net operating losses generated prior to 2018 and not utilized can be carried forward for 20 years to offset future taxable income. A full valuation allowance has been recorded against our net deferred tax assets, because we have concluded that under relevant accounting standards it is more likely than not that deferred tax assets will not be realizable. We re-evaluate this assessment quarterly and if we determine, after weighing all positive and all negative evidence available at that time, that it is more likely than not that the deferred tax asset will be realizable, we will remove the valuation allowance at that point in time.&#160; As a percentage of our pre-tax earnings, the income tax expense presented on our statement of operations is substantially less than one might normally expect to see, as we are able to utilize our deferred tax asset to offset any current federal income taxes due, and reduce the valuation allowance by an equal amount of the deferred tax asset utilized.&#160; The income tax expense recognized represents state income taxes for which we do not have deferred tax assets to offset&#160; We recognize interest and penalty expense associated with uncertain tax positions as a component of income tax expense in the consolidated statements of operations.</p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">10</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_9a067a" continuedAt="cont_af3b35"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Earnings Per-Common Share</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1052" contextRef="From2025-01-01to2025-06-30" name="us-gaap:EarningsPerSharePolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Basic and diluted earnings per share are based on the weighted average number of shares of common stock and potential common stock outstanding during the period. Potential common stock, for the purposes of determining diluted earnings per share, includes the effects of dilutive unvested restricted stock, options to purchase common stock and convertible securities, if any. The effect of such potential common stock is computed using the treasury stock method or the if-converted method, as applicable.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Treasury Stock</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1053" contextRef="From2025-01-01to2025-06-30" name="tssi:TreasuryStockPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We account for treasury shares using the cost method. Purchases of shares of common stock are recorded at cost and result in a reduction of stockholders&#8217; equity. We hold repurchased shares in treasury for general corporate purposes, including issuances under various employee compensation plans and from time to time may retire all or a portion of the treasury shares, reducing the issued and treasury share counts. When treasury shares are issued, we use a weighted average cost method. Purchase costs in excess of reissue price are treated as a reduction of retained earnings. Reissue price more than purchase costs is treated as additional paid-in-capital.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Commitments and Contingencies</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1936" contextRef="From2025-01-01to2025-06-30" name="us-gaap:CommitmentsAndContingenciesPolicyTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In the ordinary course of business, the Company may be subject to claims, lawsuits, and proceedings. Management evaluates such matters based on available information and, when necessary, records an accrual for estimated losses.&#160; As of June 30, 2025, the Company determined that there were no matters requiring accrual or disclosure as a commitment or contingency under the applicable accounting guidance.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Recent Accounting Guidance</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1054" contextRef="From2025-01-01to2025-06-30" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" escape="true" continuedAt="cont_839423"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Recently Adopted Accounting Guidance</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In November 2023, FASB issued Accounting Standards Update ASU No. 2023-07, <em>Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures. </em>("ASU 2023-07&#8221;). ASU 2023-07 improves reportable segment disclosure requirements for public business entities primarily through enhanced disclosures about significant segment expenses that are regularly provided to the chief operating decision-maker and included within each reported measure of segment profit (referred to as the "significant expense principle&#8221;). We adopted this guidance effective for the annual period ended December 31, 2024.&#160; It did not have a material impact on our financial results of operations or financial position, other than the enhanced disclosures.&#160; At the same time as adopting this guidance, we also re-assessed our segmentation and determined we now have three reportable segments whereas we have historically had two reportable segments.&#160; In interim periods after December 31, 2024, the new guidance is now applied retrospectively for all prior periods presented in the financial statements, and prior period segment results are recast to conform to the current year presentation.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Recently Issued Accounting Pronouncements</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In December 2023, FASB issued ASU No. 2023-09, <em>Improvements to Income Tax Disclosures</em> (&#8220;ASU 2023-09&#8221;), which requires that an entity disclose specific categories in the effective tax rate reconciliation as well as provide additional information for reconciling items that meet a quantitative threshold. Further, this ASU requires certain disclosures of state versus federal income tax expense and taxes paid. This ASU is effective for our Annual Report on Form 10-K for the year ending December 31, 2025, with early adoption permitted. We do not expect the adoption of ASU 2023-09 to have a material impact on our financial statements.&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In November 2024, FASB issued ASU 2024-03, <em>Income Statement &#8211; Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40)</em> (&#8220;ASU 2024-03&#8221;), which will require that entities provide more granular footnote disclosures of the details contained in certain captions on the company&#8217;s income statement, such as &#8220;Selling, General and Administrative&#8221; expenses.&#160; This new guidance is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027, with early adoption permitted.&#160; We have not yet determined all the effects that adoption of this new guidance will have on our statement of operations and related footnote disclosures.&#160; We do not expect its adoption to affect our net operating results or financial position.&#160; </p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">11</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_af3b35"><ix:continuation id="cont_839423"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In July 2025, FASB issued ASU 2025-05, <em>Financial Instruments &#8211; Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets, </em>which provides public companies with a practical expedient in developing reasonable and supportable forecasts as part of estimating expected credit losses. All entities may elect a practical expedient that assumes that current conditions as of the balance sheet date do not change for the remaining life of the asset. Early adoption is permitted. The amendment is effective for annual periods beginning after December 15, 2025, and interim periods within those annual reporting periods. Accordingly, it will first be applicable for our three-month period ending March 31, 2026.&#160; We are currently evaluating the impact of this standard on our consolidated financial statements and related disclosures.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In July 2025, the One Big Beautiful Bill Act (OBBBA) was signed into law. This legislation includes changes to the United States federal tax law, which may be subject to further clarification and the issuance of interpretive guidance. We are currently evaluating the impact of the legislation on our consolidated financial statements.</p></ix:continuation></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1021" contextRef="From2025-01-01to2025-06-30" name="us-gaap:SupplementalBalanceSheetDisclosuresTextBlock" escape="true" continuedAt="cont_5f2d91"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 2 </strong>&#8211;<strong> Supplemental Balance Sheet Information</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Receivables</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Contract and other receivables consisted of the following (in &#8216;000&#8217;s):&#160;</p><ix:nonNumeric id="fid_1058" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Contract and other receivables</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1532" contextRef="AsOf2025-06-30" name="us-gaap:AccountsReceivableGrossCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">14,018</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1531" contextRef="AsOf2024-12-31" name="us-gaap:AccountsReceivableGrossCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,210</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1534" contextRef="AsOf2025-06-30" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">21</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1533" contextRef="AsOf2024-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Contracts and other receivables, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1536" contextRef="AsOf2025-06-30" name="us-gaap:ReceivablesNetCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">13,997</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1535" contextRef="AsOf2024-12-31" name="us-gaap:ReceivablesNetCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,203</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Contract and other receivables, net were $<ix:nonFraction id="fid_1614" contextRef="AsOf2023-12-31" name="tssi:ContractAssetsIncludesAccountsReceivable" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,527,000</ix:nonFraction>&#160;as of December 31, 2023.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Inventories</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We state inventories at the lower of cost or net realizable value, using the first-in-first-out-method (in &#8216;000&#8217;s) as follows:&#160;</p><ix:nonNumeric id="fid_1059" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Raw Materials</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1538" contextRef="AsOf2025-06-30" name="us-gaap:InventoryRawMaterialsAndSupplies" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">78</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1537" contextRef="AsOf2024-12-31" name="us-gaap:InventoryRawMaterialsAndSupplies" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">201</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Work in Process</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1540" contextRef="AsOf2025-06-30" name="us-gaap:InventoryWorkInProcess" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">155</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1539" contextRef="AsOf2024-12-31" name="us-gaap:InventoryWorkInProcess" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">120</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Finished Goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1545" contextRef="AsOf2025-06-30" name="us-gaap:InventoryFinishedGoods" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">14,377</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1546" contextRef="AsOf2024-12-31" name="us-gaap:InventoryFinishedGoods" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">17,373</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1541" contextRef="AsOf2024-12-31" name="us-gaap:InventoryValuationReserves" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">21</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1542" contextRef="AsOf2025-06-30" name="us-gaap:InventoryValuationReserves" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">21</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventories, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1544" contextRef="AsOf2025-06-30" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">14,589</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1543" contextRef="AsOf2024-12-31" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">17,673</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Goodwill and Intangible Assets</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Goodwill and Intangible Assets consisted of the following (in &#8216;000&#8217;s):&#160;&#160;&#160;&#160;</p><ix:nonNumeric id="fid_1060" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" escape="true" continuedAt="cont_4e3f33"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Gross</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Gross</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Carrying</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Carrying</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amortization</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amortization</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Intangible assets not subject to amortization:</em></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Goodwill</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1553" contextRef="AsOf2024-12-31_us-gaap_GoodwillMember" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">780</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1548" contextRef="AsOf2025-06-30_us-gaap_GoodwillMember" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1554" contextRef="AsOf2025-06-30_us-gaap_GoodwillMember" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">780</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1547" contextRef="AsOf2024-12-31_us-gaap_GoodwillMember" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Intangible assets subject to amortization:</em></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Customer relationships</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1555" contextRef="AsOf2024-12-31_us-gaap_CustomerRelationshipsMember" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">906</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1549" contextRef="AsOf2024-12-31_us-gaap_CustomerRelationshipsMember" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">906</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1556" contextRef="AsOf2025-06-30_us-gaap_CustomerRelationshipsMember" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">906</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1550" contextRef="AsOf2025-06-30_us-gaap_CustomerRelationshipsMember" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">906</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Acquired software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1557" contextRef="AsOf2024-12-31_us-gaap_ComputerSoftwareIntangibleAssetMember" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">234</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1551" contextRef="AsOf2024-12-31_us-gaap_ComputerSoftwareIntangibleAssetMember" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">234</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1558" contextRef="AsOf2025-06-30_us-gaap_ComputerSoftwareIntangibleAssetMember" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">234</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1552" contextRef="AsOf2025-06-30_us-gaap_ComputerSoftwareIntangibleAssetMember" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" sign="-" scale="3">234</ix:nonFraction> </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Goodwill is attributable to the following reportable segments (in &#8216;000&#8217;s): &#160;</p><ix:continuation id="cont_4e3f33"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Facilities Management unit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1559" contextRef="AsOf2024-12-31_tssi_FacilitiesSegmentMember" name="us-gaap:GoodwillGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">643</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1560" contextRef="AsOf2025-06-30_tssi_FacilitiesSegmentMember" name="us-gaap:GoodwillGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">643</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Systems Integration unit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1561" contextRef="AsOf2024-12-31_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:GoodwillGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">137</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1562" contextRef="AsOf2025-06-30_tssi_SystemIntegrationServicesSegmentMember" name="us-gaap:GoodwillGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">137</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1563" contextRef="AsOf2025-06-30" name="us-gaap:GoodwillGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">780</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1564" contextRef="AsOf2024-12-31" name="us-gaap:GoodwillGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">780</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">12</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_5f2d91" continuedAt="cont_783818"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We recognized no amortization expense related to intangible assets in the three-month or six-month periods ended June 30, 2025 or in the comparable periods of 2024 as all long-lived intangible assets subject to amortization were fully amortized.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Property and Equipment</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Property and equipment consisted of the following (in &#8217;000&#8217;s):</p><ix:nonNumeric id="fid_1061" contextRef="From2025-01-01to2025-06-30" name="us-gaap:PropertyPlantAndEquipmentTextBlock" escape="true" continuedAt="cont_0bb812"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Estimated Useful Lives</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(years)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Trade equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric id="fid_1565" contextRef="From2025-01-01to2025-06-30_tssi_TradeEquipmentMember_tssi_BottomMember" name="tssi:PropertyPlantAndEquipmentEstimatedUsefulLife" format="ixt-sec:duryear">5</ix:nonNumeric>&#8211;<ix:nonNumeric id="fid_1567" contextRef="From2025-01-01to2025-06-30_tssi_TopMember_us-gaap_LeaseholdImprovementsMember" name="tssi:PropertyPlantAndEquipmentEstimatedUsefulLife" format="ixt-sec:duryear">10</ix:nonNumeric></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1573" contextRef="AsOf2025-06-30_tssi_TradeEquipmentMember_tssi_BottomMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,680</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1572" contextRef="AsOf2024-12-31_tssi_TradeEquipmentMember_tssi_BottomMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">763</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric id="fid_1566" contextRef="From2025-01-01to2025-06-30_tssi_BottomMember_us-gaap_LeaseholdImprovementsMember" name="tssi:PropertyPlantAndEquipmentEstimatedUsefulLife" format="ixt-sec:duryear">2</ix:nonNumeric>&#8211;<ix:nonNumeric id="fid_1586" contextRef="From2025-01-01to2025-06-30_tssi_TradeEquipmentMember_tssi_TopMember" name="tssi:PropertyPlantAndEquipmentEstimatedUsefulLife" format="ixt-sec:duryear">10</ix:nonNumeric></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1575" contextRef="AsOf2025-06-30_us-gaap_LeaseholdImprovementsMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-4" scale="4">29,909</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1574" contextRef="AsOf2024-12-31_us-gaap_LeaseholdImprovementsMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,328</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric id="fid_1587" contextRef="From2025-01-01to2025-06-30_tssi_FurnitureAndFixtureMember_tssi_BottomMember" name="tssi:PropertyPlantAndEquipmentEstimatedUsefulLife" format="ixt-sec:duryear">5</ix:nonNumeric>-<ix:nonNumeric id="fid_1568" contextRef="From2025-01-01to2025-06-30_us-gaap_FurnitureAndFixturesMember_tssi_TopMember" name="tssi:PropertyPlantAndEquipmentEstimatedUsefulLife" format="ixt-sec:duryear">7</ix:nonNumeric></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1577" contextRef="AsOf2025-06-30_us-gaap_FurnitureAndFixturesMember_tssi_TopMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">277</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1576" contextRef="AsOf2024-12-31_us-gaap_FurnitureAndFixturesMember_tssi_TopMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-4" scale="4">140</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer equipment and software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric id="fid_1569" contextRef="From2025-01-01to2025-06-30_tssi_ComputerEquipmentAndSoftwareMember" name="tssi:PropertyPlantAndEquipmentEstimatedUsefulLife" format="ixt-sec:duryear">3</ix:nonNumeric></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1579" contextRef="AsOf2025-06-30_tssi_ComputerEquipmentAndSoftwareMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">554</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1578" contextRef="AsOf2024-12-31_tssi_ComputerEquipmentAndSoftwareMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,363</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Construction in Process</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">N/A</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1581" contextRef="AsOf2025-06-30_tssi_ConstructionInProcessMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,469</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1580" contextRef="AsOf2024-12-31_tssi_ConstructionInProcessMember" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">6,701</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1584" contextRef="AsOf2025-06-30" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">37,889</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1585" contextRef="AsOf2024-12-31" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">12,295</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less accumulated depreciation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1571" contextRef="AsOf2025-06-30" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,601</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1570" contextRef="AsOf2024-12-31" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,704</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1583" contextRef="AsOf2025-06-30" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">35,288</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1582" contextRef="AsOf2024-12-31" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,591</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Depreciation of property and equipment and amortization of leasehold improvements and software totaled $<ix:nonFraction id="fid_1618" contextRef="From2025-04-01to2025-06-30" name="us-gaap:OtherDepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="0">844,000</ix:nonFraction> and $<ix:nonFraction id="fid_1616" contextRef="From2024-04-01to2024-06-30" name="us-gaap:OtherDepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="0">117,000</ix:nonFraction> for the three-month periods ended June 30, 2025 and 2024, respectively. Depreciation of property and equipment and amortization of leasehold improvements and software totaled $<ix:nonFraction id="fid_1615" contextRef="From2025-01-01to2025-06-30" name="us-gaap:OtherDepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,054,000</ix:nonFraction> and $<ix:nonFraction id="fid_1619" contextRef="From2024-01-01to2024-06-30" name="us-gaap:OtherDepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="0">188,000</ix:nonFraction> for the six-month periods ended June 30, 2025 and 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table presents interest capitalized as property and equipment, as the related debt was used to finance a portion of the capital expenditures (in $000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_0bb812"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1590" contextRef="From2025-04-01to2025-06-30" name="us-gaap:InterestCostsCapitalized" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">107</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1591" contextRef="From2024-04-01to2024-06-30" name="us-gaap:InterestCostsCapitalized" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1588" contextRef="From2025-01-01to2025-06-30" name="us-gaap:InterestCostsCapitalized" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">220</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1589" contextRef="From2024-01-01to2024-06-30" name="us-gaap:InterestCostsCapitalized" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Other Assets</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Other assets, non-current is comprised of the following amounts (in $000&#8217;s):</p><ix:nonNumeric id="fid_1062" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfOtherAssetsTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deposits</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1592" contextRef="AsOf2024-12-31" name="us-gaap:DepositsAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,109</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1593" contextRef="AsOf2025-06-30" name="us-gaap:DepositsAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,109</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other non-current assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1595" contextRef="AsOf2025-06-30" name="tssi:OtherNonCurrentAssetsNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,459</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1594" contextRef="AsOf2024-12-31" name="tssi:OtherNonCurrentAssetsNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,678</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at end of year</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1597" contextRef="AsOf2025-06-30" name="us-gaap:OtherAssetsNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,568</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1596" contextRef="AsOf2024-12-31" name="us-gaap:OtherAssetsNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,787</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Accounts Payable and Accrued Expenses</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Accounts payable and accrued expenses consisted of the following (in &#8217;000&#8217;s):&#160;&#160;&#160;</p><ix:nonNumeric id="fid_1063" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accounts payable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1599" contextRef="AsOf2025-06-30" name="us-gaap:AccountsPayableCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">69,281</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1598" contextRef="AsOf2024-12-31" name="us-gaap:AccountsPayableCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">33,491</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1601" contextRef="AsOf2025-06-30" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,674</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1600" contextRef="AsOf2024-12-31" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-4" scale="4">17,802</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Compensation, benefits and related taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1603" contextRef="AsOf2025-06-30" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,616</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1602" contextRef="AsOf2024-12-31" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,774</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1605" contextRef="AsOf2025-06-30" name="us-gaap:OtherAccruedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">449</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1604" contextRef="AsOf2024-12-31" name="us-gaap:OtherAccruedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">273</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total accounts payable and accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1607" contextRef="AsOf2025-06-30" name="us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">82,020</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1606" contextRef="AsOf2024-12-31" name="us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">53,340</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Long-Term Debt</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Long-term debt consisted of the following (in &#8217;000&#8217;s):&#160;&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1078" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfDebtTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Borrowed funds (bank loan; see Note 3)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1609" contextRef="AsOf2025-06-30" name="us-gaap:BorrowingsUnderGuaranteedInvestmentAgreements" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">20,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1608" contextRef="AsOf2024-12-31" name="us-gaap:BorrowingsUnderGuaranteedInvestmentAgreements" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,667</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred debt issuance costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1611" contextRef="AsOf2025-06-30" name="us-gaap:AccumulatedAmortizationDeferredFinanceCosts" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">459</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1610" contextRef="AsOf2024-12-31" name="us-gaap:AccumulatedAmortizationDeferredFinanceCosts" format="ixt:numdotdecimal" unitRef="USD" decimals="-4" scale="4">467</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-term debt, non-current</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1613" contextRef="AsOf2025-06-30" name="us-gaap:LongTermDebtNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">19,541</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1612" contextRef="AsOf2024-12-31" name="us-gaap:LongTermDebtNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">8,200</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">13</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_783818"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Amortization of deferred debt issuance costs began in the quarter ended June 30, 2025 once construction was substantially complete.&#160; We amortized $<ix:nonFraction id="fid_1617" contextRef="From2025-01-01to2025-06-30" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:numdotdecimal" unitRef="USD" decimals="0">8,000</ix:nonFraction> of the deferred financing costs to interest expense during the quarter ended June 30, 2024, with no such amortization in the prior year period.&#160;&#160;</p></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1022" contextRef="From2025-01-01to2025-06-30" name="us-gaap:LongTermDebtTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 3 - Long-Term Debt </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>&#160;</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In May 2024, we renewed our revolving line of credit (the &#8220;revolving line of credit&#8221;) with Susser Bank (&#8220;Lender&#8221;) pursuant to a Business Loan Agreement (Asset Based) effective May 5, 2024. The obligations under the revolving line of credit were secured by substantially all of our accounts receivable. Our wholly owned subsidiaries jointly and severally guaranteed our obligations under the revolving line of credit. We terminated the revolving line of credit on December 31, 2024 when we entered a new credit agreement with Susser Bank described below.&#160; There were no borrowings outstanding on the revolving credit facility at any point during the periods presented.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">On December 31, 2024, we entered into a new Credit Agreement (the &#8220;Credit Agreement&#8221;) with Susser Bank to fund improvements at the Georgetown, Texas location we leased on December 2, 2024 to which we have now moved our headquarters and the majority of our operations.&#160; The Credit Agreement provides for a $<ix:nonFraction id="fid_1626" contextRef="AsOf2024-12-31_tssi_CreditAgreementMember" name="tssi:LineOfCreditFacilityMinimumLiquidityThreshold" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">20.0</ix:nonFraction> million term loan facility, and the option for additional incremental term loans of up to $<ix:nonFraction id="fid_1850" contextRef="AsOf2025-06-30_tssi_CreditAgreementMember" name="us-gaap:Cash" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">5.0</ix:nonFraction> million (the &#8220;accordion feature&#8221;), pending Lender approval.&#160; Upon closing on December 31, 2024, <ix:nonNumeric id="fid_1625" contextRef="From2025-01-01to2025-06-30_tssi_CreditAgreementMember" name="tssi:CreditAgreementDescription">we borrowed $8.7 million, with $5.0 million of that amount deposited in a required interest-bearing cash collateral account, $3.4 million reimbursed to us for capital expenditures previously funded with our operating cash, and $0.3 million funding loan closing costs</ix:nonNumeric>.&#160; In the three-month period ended June 30, 2025, we borrowed the remaining $<ix:nonFraction id="fid_1844" contextRef="From2025-04-01to2025-06-30" name="us-gaap:ProceedsFromOtherDebt" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">11.3</ix:nonFraction> million of available funds, bringing the total amount borrowed to $<ix:nonFraction id="fid_1845" contextRef="From2025-04-01to2025-06-30" name="us-gaap:RepaymentsOfOtherLongTermDebt" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">20.0</ix:nonFraction> million.&#160; Per its terms, we made interest-only payments through July 5, 2025.&#160; On July 5, 2025, the loan converted to a fully amortizing term loan with a final due date of January 5, 2030 and monthly payments of approximately $<ix:nonFraction id="fid_1847" contextRef="From2025-01-01to2025-06-30" name="us-gaap:RepaymentsOfOtherDebt" format="ixt:numdotdecimal" unitRef="USD" decimals="0">437,000</ix:nonFraction> beginning on August 5, 2025.&#160; As the loan bears a floating interest rate, the total payment will fluctuate from time to time with prevailing interest rates.&#160; The loan is secured by a $<ix:nonFraction id="fid_1628" contextRef="AsOf2024-12-31_tssi_CreditAgreementMember" name="tssi:LineOfCreditFacilityCurrentBorrowingCapacityIncrement" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">5.0</ix:nonFraction> million cash deposit held in a money market account with related earnings payable to the Company, and all equipment that is not permanently attached to, and which may be removed from our Georgetown, Texas facility and headquarters building without significantly damaging the leased building.&#160; Interest accrues at a rate per annum equal to 1-month SOFR plus <ix:nonFraction id="fid_1622" contextRef="AsOf2024-12-31_tssi_CreditAgreementMember" name="us-gaap:DebtInstrumentInterestRateEffectivePercentage" unitRef="Pure" decimals="2" scale="-2">3.0</ix:nonFraction>%, subject to a <ix:nonFraction id="fid_1623" contextRef="AsOf2024-12-31_tssi_CreditAgreementMember" name="tssi:FloorInterestRatePerAnnumOfDebt" unitRef="Pure" decimals="3" scale="-2">4.5</ix:nonFraction>% floor.&#160; Upon an event of default, interest would accrue at a rate equal to the normal rate plus <ix:nonFraction id="fid_1624" contextRef="AsOf2024-12-31_tssi_CreditAgreementMember" name="tssi:DefaultInterestRatePerAnnumOfDebt" unitRef="Pure" decimals="2" scale="-2">2.0</ix:nonFraction>%.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The Credit Agreement includes customary affirmative covenants for secured transactions of this type, including maintaining adequate books and records, periodic financial reporting, compliance with laws, maintenance of insurance, maintenance of assets, timely payment of taxes, and notices of adverse events. It also includes customary negative covenants including incurrence of other indebtedness, mergers, consolidations and transfers of assets and liens on our assets. The Loan Agreement and ancillary documents also include customary events of default, including payment defaults, failure to perform or observe terms, covenants or agreements included in the Loan Agreement and ancillary documents, insolvency and bankruptcy defaults, judgment defaults, material adverse change defaults, and change of ownership defaults.&#160; <ix:nonNumeric id="fid_1627" contextRef="From2025-01-01to2025-06-30_tssi_CreditAgreementMember" name="tssi:LeverageRatioDescription">Financial covenants require us to maintain a leverage ratio, as defined in the agreement, of no more than 3.75x through September 30, 2025; 2.75x from then to September 30, 2026; and 2.00x after that, and a debt service coverage ratio, as defined in the agreement, of at least 1.25x</ix:nonNumeric>.&#160; We were in compliance with all covenants at June 30, 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As of June 30, 2025, all available funds have been drawn on the $<ix:nonFraction id="fid_1852" contextRef="From2025-01-01to2025-06-30_tssi_CreditAgreementMember" name="us-gaap:LongTermDebtAverageAmountOutstanding" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">20.0</ix:nonFraction> million loan. If we utilize the accordion feature, we may borrow up to an additional $<ix:nonFraction id="fid_1854" contextRef="AsOf2025-06-30_tssi_CreditAgreementMember" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">5.0</ix:nonFraction> million to reimburse us for additional construction costs.&#160; If we were to borrow those additional funds, the loan would be re-amortized using the new principal amount and the original due date.&#160; &#160;&#160;&#160;</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1023" contextRef="From2025-01-01to2025-06-30" name="us-gaap:LeasesOfLesseeDisclosureTextBlock" escape="true" continuedAt="cont_7ce18c"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 4- Leasing Arrangements</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have operating leases for our office and integration facilities in both Round Rock, Texas and Georgetown, Texas as well as for certain equipment. Our leases have remaining lease terms of <ix:nonNumeric id="fid_1666" contextRef="From2025-01-01to2025-06-30_tssi_BottomMember" name="tssi:OperatingLeaseRemainingLeaseTerm" format="ixt-sec:duryear">9</ix:nonNumeric> to <ix:nonNumeric id="fid_1667" contextRef="From2025-01-01to2025-06-30_tssi_TopMember" name="tssi:OperatingLeaseRemainingLeaseTerm" format="ixt-sec:duryear">119</ix:nonNumeric> months. As of June 30, 2025, we have not entered into any lease arrangement classified as a finance lease.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We determine if an arrangement is a lease at its inception. Operating leases are included in the lease right-of-use assets, current lease liabilities and lease liabilities, non-current, on our consolidated balance sheets. We have elected an accounting policy to not recognize short-term leases (one year or less) on the balance sheet. We also elected the package of practical expedients which applies to leases that commenced before the adoption date. By electing the package of practical expedients, we did not need to reassess whether any existing contracts are or contain leases, the lease classification for any existing leases and initial direct costs for any existing leases.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">14</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_7ce18c"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Right-of-use assets and operating lease liabilities are recognized based on the present value of future minimum lease payments over the lease term at commencement date. When the implicit rate of the lease is not provided or cannot be determined, we use our incremental borrowing rate based on the information available at the commencement date to determine the present value of future payments. Lease terms may include options to extend or terminate the lease when it is reasonably certain that we will exercise those options. Lease expense for minimum lease payments is recognized on a straight-line basis over the lease term, with variable lease expense recognized in the period in which the costs are incurred. Variable lease expense is comprised of common are maintenance (CAM), property taxes and property insurance.&#160; Components of lease expense and other information is as follows (in &#8216;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1064" contextRef="From2025-01-01to2025-06-30" name="us-gaap:LeaseCostTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease cost:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1642" contextRef="From2025-04-01to2025-06-30" name="us-gaap:OperatingLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">973</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1643" contextRef="From2024-04-01to2024-06-30" name="us-gaap:OperatingLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">236</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1631" contextRef="From2025-01-01to2025-06-30" name="us-gaap:OperatingLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,964</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1632" contextRef="From2024-01-01to2024-06-30" name="us-gaap:OperatingLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">457</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Variable lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1644" contextRef="From2025-04-01to2025-06-30" name="us-gaap:VariableLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">202</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1646" contextRef="From2024-04-01to2024-06-30" name="us-gaap:VariableLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">114</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1641" contextRef="From2025-01-01to2025-06-30" name="us-gaap:VariableLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">324</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1645" contextRef="From2024-01-01to2024-06-30" name="us-gaap:VariableLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">227</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total operating lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1649" contextRef="From2025-04-01to2025-06-30" name="tssi:TotalOperatingLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,175</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1651" contextRef="From2024-04-01to2024-06-30" name="tssi:TotalOperatingLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">350</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1650" contextRef="From2025-01-01to2025-06-30" name="tssi:TotalOperatingLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,288</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1652" contextRef="From2024-01-01to2024-06-30" name="tssi:TotalOperatingLeaseCost" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">684</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash paid for operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1648" contextRef="From2025-04-01to2025-06-30" name="us-gaap:OperatingLeasePayments" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">420</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1647" contextRef="From2024-04-01to2024-06-30" name="us-gaap:OperatingLeasePayments" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">136</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1633" contextRef="From2025-01-01to2025-06-30" name="us-gaap:OperatingLeasePayments" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">656</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1634" contextRef="From2024-01-01to2024-06-30" name="us-gaap:OperatingLeasePayments" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">265</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">New right-of-use assets &#8211; operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1639" contextRef="From2025-04-01to2025-06-30" name="tssi:OperatingLeaseRightOfUseAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1640" contextRef="From2024-04-01to2024-06-30" name="tssi:OperatingLeaseRightOfUseAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1637" contextRef="From2025-01-01to2025-06-30" name="tssi:OperatingLeaseRightOfUseAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1638" contextRef="From2024-01-01to2024-06-30" name="tssi:OperatingLeaseRightOfUseAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following presents information regarding the Company's operating leases as of June 30:&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1065" contextRef="From2025-01-01to2025-06-30" name="tssi:ScheduleOfOperatingLeaseInformationTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average remaining lease term &#8211;&#160;operating leases (months)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1629" contextRef="From2025-01-01to2025-06-30" name="tssi:OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" format="ixt-sec:duryear">109</ix:nonNumeric></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1630" contextRef="From2024-01-01to2024-06-30" name="tssi:OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" format="ixt-sec:duryear">56</ix:nonNumeric></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average discount rate &#8211;&#160;operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1636" contextRef="AsOf2025-06-30" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" unitRef="Pure" decimals="2" scale="-2">7</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1635" contextRef="AsOf2024-06-30" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" unitRef="Pure" decimals="2" scale="-2">5</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Future minimum lease payments under non-cancellable leases as of June 30, 2025 were as follows (in &#8216;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1066" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Fiscal</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Year</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1653" contextRef="AsOf2025-06-30" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,813</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1654" contextRef="AsOf2025-06-30" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,662</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1655" contextRef="AsOf2025-06-30" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,777</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1656" contextRef="AsOf2025-06-30" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,905</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1657" contextRef="AsOf2025-06-30" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,265</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2030</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1664" contextRef="AsOf2025-06-30" name="tssi:LesseeOperatingLeaseLiabilityPaymentsDueYearSix" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,538</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Thereafter</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1658" contextRef="AsOf2025-06-30" name="tssi:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" format="ixt:numdotdecimal" unitRef="USD" decimals="-4" scale="4">16,678</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total minimum future lease payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1659" contextRef="AsOf2025-06-30" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">34,638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Less imputed interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1660" contextRef="AsOf2025-06-30" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">10,099</ix:nonFraction> </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1661" contextRef="AsOf2025-06-30" name="us-gaap:OperatingLeaseLiability" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">24,539</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Reported as of June 30, 2025 (in &#8216;000&#8217;s) :</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current portion of lease liability</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1662" contextRef="AsOf2025-06-30" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,891</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Non-current portion of lease liability</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1663" contextRef="AsOf2025-06-30" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">22,648</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1665" contextRef="AsOf2025-06-30" name="us-gaap:CapitalLeasesFutureMinimumPaymentsDue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">24,539</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1030" contextRef="From2025-01-01to2025-06-30" name="us-gaap:EarningsPerShareTextBlock" escape="true" continuedAt="cont_1df5ac"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 5 - Earnings Per-Share </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Basic and diluted income per share is based on the weighted average number of shares of common stock and potential common stock outstanding during the period. Potential common stock, for the purpose of determining diluted income per share, includes the effects of dilutive unvested restricted stock, options to purchase common stock and convertible securities. The effect of such potential common stock is computed using the treasury stock method or the if-converted method, as applicable.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">15</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_1df5ac"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table presents a reconciliation of the numerators and denominators of the basic and diluted income per share computations for income from continuing operations. In the table below, income represents the numerator, and shares represent the denominator (in thousands except per share amounts):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1075" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(unaudited)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(unaudited)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Basic Earnings per share</strong>:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1674" contextRef="From2025-04-01to2025-06-30_tssi_BasicNetIncomePerShareMember" name="us-gaap:NetIncomeLossAttributableToParentDiluted" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,483</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1675" contextRef="From2024-04-01to2024-06-30_tssi_BasicNetIncomePerShareMember" name="us-gaap:NetIncomeLossAttributableToParentDiluted" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,402</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1688" contextRef="From2025-01-01to2025-06-30_tssi_BasicNetIncomePerShareMember" name="us-gaap:NetIncomeLossAttributableToParentDiluted" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,462</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1689" contextRef="From2024-01-01to2024-06-30_tssi_BasicNetIncomePerShareMember" name="us-gaap:NetIncomeLossAttributableToParentDiluted" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,417</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Weighted-average shares of common stock outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1680" contextRef="From2025-04-01to2025-06-30_tssi_BasicNetIncomePerShareMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,581</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1681" contextRef="From2024-04-01to2024-06-30_tssi_BasicNetIncomePerShareMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">22,077</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1690" contextRef="From2025-01-01to2025-06-30_tssi_BasicNetIncomePerShareMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,871</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1691" contextRef="From2024-01-01to2024-06-30_tssi_BasicNetIncomePerShareMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">21,988</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic Earnings per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1668" contextRef="From2025-04-01to2025-06-30" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1669" contextRef="From2024-04-01to2024-06-30" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1684" contextRef="From2025-01-01to2025-06-30" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.19</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1670" contextRef="From2025-04-01to2025-06-30" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Diluted Earnings per share</strong>:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1676" contextRef="From2025-04-01to2025-06-30_tssi_DilutedNetIncomePerShareMember" name="us-gaap:NetIncomeLossAttributableToParentDiluted" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,483</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1677" contextRef="From2024-04-01to2024-06-30_tssi_DilutedNetIncomePerShareMember" name="us-gaap:NetIncomeLossAttributableToParentDiluted" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,402</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1692" contextRef="From2025-01-01to2025-06-30_tssi_DilutedNetIncomePerShareMember" name="us-gaap:NetIncomeLossAttributableToParentDiluted" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,462</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1693" contextRef="From2024-01-01to2024-06-30_tssi_DilutedNetIncomePerShareMember" name="us-gaap:NetIncomeLossAttributableToParentDiluted" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,417</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average shares of common stock outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1682" contextRef="From2025-04-01to2025-06-30_tssi_DilutedNetIncomePerShareMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,581</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1683" contextRef="From2024-04-01to2024-06-30_tssi_DilutedNetIncomePerShareMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">22,077</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1694" contextRef="From2025-01-01to2025-06-30_tssi_DilutedNetIncomePerShareMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,871</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1695" contextRef="From2024-01-01to2024-06-30_tssi_DilutedNetIncomePerShareMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">21,988</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Dilutive options and warrants outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1672" contextRef="From2025-04-01to2025-06-30" name="us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">2,226</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1673" contextRef="From2024-04-01to2024-06-30" name="us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">2,623</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1696" contextRef="From2025-01-01to2025-06-30" name="us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">2,368</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1697" contextRef="From2024-01-01to2024-06-30" name="us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">1,546</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Number of shares used in diluted per-share computation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1678" contextRef="From2025-04-01to2025-06-30" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">25,807</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1679" contextRef="From2024-04-01to2024-06-30" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">24,700</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1698" contextRef="From2025-01-01to2025-06-30" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">26,239</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1699" contextRef="From2024-01-01to2024-06-30" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" unitRef="Shares" decimals="-3" scale="3">23,534</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Earnings per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1671" contextRef="From2024-04-01to2024-06-30" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1685" contextRef="From2024-01-01to2024-06-30" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1686" contextRef="From2025-01-01to2025-06-30" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.17</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1687" contextRef="From2024-01-01to2024-06-30" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">For the three-month periods ended June 30, 2025 and 2024, respectively, <ix:nonFraction id="fid_1700" contextRef="From2025-04-01to2025-06-30" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">50,000</ix:nonFraction> and <ix:nonFraction id="fid_1701" contextRef="From2024-04-01to2024-06-30" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">1,566,000</ix:nonFraction> restricted shares and options were excluded from the calculation of dilutive shares because their effect would have been anti-dilutive. For the six-month periods ended June 30, 2025 and 2024, respectively, <ix:nonFraction id="fid_1702" contextRef="From2025-01-01to2025-06-30" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">50,000</ix:nonFraction> and <ix:nonFraction id="fid_1703" contextRef="From2024-01-01to2024-06-30" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,471,000</ix:nonFraction> restricted shares and options were excluded from the calculation of dilutive shares because their effect would have been anti-dilutive. </p></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1031" contextRef="From2025-01-01to2025-06-30" name="us-gaap:SegmentReportingDisclosureTextBlock" escape="true" continuedAt="cont_d44ef0"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 6 - Segment Reporting</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Segment information reported in the tables below represents the operating segments of the Company organized in a manner consistent with which separate information is available and for which segment results are evaluated regularly by our President and CEO, who is our chief operating decision-maker (CODM), in assessing performance, allocating resources and awarding incentive compensation. Prior to the fourth quarter of 2024, our activities were organized and managed in two reportable segments: facilities management and systems integration, with our procurement operating segment aggregated into the systems integration reportable segment. In the fourth quarter of 2024, we reorganized our structure such that our CODM now evaluates our operations and allocates resources on the basis of three segments.&#160; Accordingly, we have determined that we now have three reportable segments as noted below.&#160; Comparable prior period amounts presented have been recast to conform with the current period presentation, including the costs allocated to each reportable segment as provided to our CODM.&#160; Our revenues are substantially all derived from the U.S. market, and all revenues presented are from external customers; we have no intercompany revenues.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The Company&#8217;s reportable segments are as follows: </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Procurement: Assists our customers in procuring third-party hardware, software, and professional services on their behalf that are used in our integration services as we integrate these components to deliver a completed system to our customers. Although this activity drives some of the work done in the systems integration business, its activities and financial results are reviewed separately from the systems integration segment results.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Systems Integration: Integrates IT equipment for OEM vendors and customers to be used inside data center environments, including modular data centers. This includes AI-enabled computer technology as well as more traditional data center equipment. This segment also provides other computer equipment configuration services for our customers.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Facilities Management: Involved in the design, project management and maintenance of data centers and mission-critical business operations.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The CODM evaluates the performance of the segments based on segment revenue, gross profit and pre-tax income, including the significant expenses presented separately in the table below. Segment results are exclusive of certain activities and expenses that are not allocated to specific segments, and which are reconciled below to our consolidated pre-tax income. </p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">16</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_d44ef0" continuedAt="cont_f83afd"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">When present, certain expenses within cost of revenues such as amortization of purchased intangibles and unusual and non-recurring items are not allocated to specific segments. Therefore, these amounts are excluded from segment results and included in consolidated pre-tax income.&#160; Other consolidated assets not specifically attributable to or allocated to business segments are principally cash and cash equivalents, prepaids and deposits, certain fixed assets, and operating lease right-of use assets.&#160; Other operating expenses in the following tables generally represent property taxes, rent and related costs, travel and entertainment, professional fees, office supplies and other similar items utilized by the specific reportable segments but not separately identified in the tables below as none of the costs is individually material.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1076" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" escape="true" continuedAt="cont_6ed6ef"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Information regarding our reportable segments is presented below (in thousands):&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Three Months Ended June 30, 2025:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1855" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">33,002</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1865" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,486</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1874" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,482</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1883" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">43,970</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1857" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">30,463</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1866" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,311</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1875" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">381</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1884" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">36,155</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1858" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,539</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1867" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,175</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1876" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,101</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1885" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,815</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1894" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1868" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">793</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1877" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">170</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1886" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">963</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1860" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:DepreciationAndAmortization" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1869" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">761</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1878" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1887" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">764</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1859" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:OtherGeneralExpense" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1870" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">343</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1879" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">15</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1888" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">358</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1862" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">756</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1871" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">100</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1880" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1889" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">859</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1863" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,783</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1872" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,178</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1881" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">910</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1890" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,871</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1864" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="tssi:CapitalExpendituresAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1873" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="tssi:CapitalExpendituresAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">12,705</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1882" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="tssi:CapitalExpendituresAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1891" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="tssi:CapitalExpendituresAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">12,705</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_6ed6ef" continuedAt="cont_0214c7"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Three Months Ended June 30, 2024:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1856" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,914</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1900" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,960</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1909" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,285</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1917" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">12,159</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1892" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,201</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1901" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,824</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1911" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">598</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1918" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,623</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1893" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">713</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1902" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,136</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1910" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,687</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1919" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,536</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1861" contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1903" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">490</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1912" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">103</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1920" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">593</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1895" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:DepreciationAndAmortization" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1904" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">91</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1913" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">26</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1921" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">117</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1896" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:OtherGeneralExpense" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1905" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">349</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1914" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">11</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1922" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">338</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1897" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">310</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1906" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">44</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1915" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">22</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1923" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">376</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1898" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">403</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1907" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,162</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1916" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,547</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1924" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,112</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1899" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="tssi:CapitalExpendituresAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1908" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="tssi:CapitalExpendituresAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,682</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1925" contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="tssi:CapitalExpendituresAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,682</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_0214c7" continuedAt="cont_797853"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Six Months Ended June 30, 2025:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1704" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">123,179</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1705" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,970</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1706" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,780</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1707" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">142,929</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1712" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">113,612</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1713" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">11,144</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1714" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,148</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1715" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">125,904</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1724" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">9,567</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1721" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5,826</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1722" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,632</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1723" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">17,025</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1728" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1730" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,624</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1731" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">309</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1732" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,933</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1736" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:DepreciationAndAmortization" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1738" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">940</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1739" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">6</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1740" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">946</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1744" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">14</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1746" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">623</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1747" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">24</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1748" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">661</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1768" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,108</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1769" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">202</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1770" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">17</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1771" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,327</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1792" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,445</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1793" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,437</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1794" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,276</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1795" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">11,158</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:10pt">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1808" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="tssi:CapitalExpendituresAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1809" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember" name="tssi:CapitalExpendituresAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">27,574</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1810" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="tssi:CapitalExpendituresAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1811" contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="tssi:CapitalExpendituresAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">27,574</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">17</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_f83afd"><ix:continuation id="cont_797853" continuedAt="cont_a7edf6"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Six Months Ended June 30, 2024:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1708" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">16,538</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1709" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,083</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1710" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,431</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1711" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">28,052</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1716" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">14,916</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1717" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,343</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1718" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,543</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1719" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">20,802</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1720" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,622</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1725" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,740</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1726" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,888</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1727" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1729" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1733" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">920</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1734" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">232</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1735" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,152</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1737" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:DepreciationAndAmortization" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1741" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">150</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1742" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">38</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1743" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">188</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1745" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:OtherGeneralExpense" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1749" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">510</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1750" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">5</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1751" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:OtherGeneralExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">515</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1772" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">594</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1773" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">78</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1774" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">32</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1775" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">704</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1796" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,028</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1797" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,082</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1798" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,581</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1799" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,691</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1812" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="tssi:CapitalExpendituresAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1814" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember" name="tssi:CapitalExpendituresAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,721</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1813" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="tssi:CapitalExpendituresAssets" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1815" contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="tssi:CapitalExpendituresAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,721</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The table below reconciles total segment pre-tax income for each period presented above to consolidated pre-tax income (in thousands):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_a7edf6" continuedAt="cont_138763"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1926" contextRef="From2025-04-01to2025-06-30" name="us-gaap:OtherComprehensiveIncomeLossBeforeTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,871</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1927" contextRef="From2024-04-01to2024-06-30" name="us-gaap:OtherComprehensiveIncomeLossBeforeTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,112</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1816" contextRef="From2025-01-01to2025-06-30" name="us-gaap:OtherComprehensiveIncomeLossBeforeTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">11,158</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1817" contextRef="From2024-01-01to2024-06-30" name="us-gaap:OtherComprehensiveIncomeLossBeforeTax" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,691</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Unallocated SG&amp;A, depreciation and other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1928" contextRef="From2025-04-01to2025-06-30" name="tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,494</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1929" contextRef="From2024-04-01to2024-06-30" name="tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,790</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1818" contextRef="From2025-01-01to2025-06-30" name="tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">7,136</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1822" contextRef="From2024-01-01to2024-06-30" name="tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">3,443</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Plus: Unallocated interest income, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1930" contextRef="From2025-04-01to2025-06-30" name="us-gaap:InterestIncomeExpenseNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">175</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1931" contextRef="From2024-04-01to2024-06-30" name="us-gaap:InterestIncomeExpenseNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">106</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1819" contextRef="From2025-01-01to2025-06-30" name="us-gaap:InterestIncomeExpenseNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">558</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1823" contextRef="From2024-01-01to2024-06-30" name="us-gaap:InterestIncomeExpenseNet" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">205</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less other expense (plus other income)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1935" contextRef="From2025-04-01to2025-06-30" name="us-gaap:OtherExpenses" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1934" contextRef="From2024-04-01to2024-06-30" name="us-gaap:OtherExpenses" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1820" contextRef="From2025-01-01to2025-06-30" name="us-gaap:OtherExpenses" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1824" contextRef="From2024-01-01to2024-06-30" name="us-gaap:OtherExpenses" format="ixt:zerodash" unitRef="USD" decimals="-3" scale="3">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consolidated pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1932" contextRef="From2025-04-01to2025-06-30" name="us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,552</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1933" contextRef="From2024-04-01to2024-06-30" name="us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,428</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1821" contextRef="From2025-01-01to2025-06-30" name="us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">4,580</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1825" contextRef="From2024-01-01to2024-06-30" name="us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,453</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The table below presents segment total assets for June 30, 2025 and December 31, 2024 (in thousands):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_138763" continuedAt="cont_d08eaa"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Segment Assets at June 30, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1804" contextRef="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">28,452</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1805" contextRef="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">38,789</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1806" contextRef="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,773</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1807" contextRef="AsOf2025-06-30_us-gaap_OperatingSegmentsMember" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">70,014</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Segment Assets at December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1800" contextRef="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">19,319</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1801" contextRef="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">25,855</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1802" contextRef="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">932</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1803" contextRef="AsOf2024-12-31_us-gaap_OperatingSegmentsMember" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">46,106</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The table below reconciles combined segment total assets for each period presented above to consolidated total assets (in thousands):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:continuation id="cont_d08eaa"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Combined total assets included in segments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1839" contextRef="AsOf2025-06-30" name="tssi:CombinedTotalAssetsIncludedInSegments" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">70,014</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1838" contextRef="AsOf2024-12-31" name="tssi:CombinedTotalAssetsIncludedInSegments" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">46,106</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Plus items not allocated to segments:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Cash and cash equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1827" contextRef="AsOf2025-06-30" name="us-gaap:OtherCashEquivalentsAtCarryingValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">41,836</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1826" contextRef="AsOf2024-12-31" name="us-gaap:OtherCashEquivalentsAtCarryingValue" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">23,222</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Prepaid expenses and other current assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1829" contextRef="AsOf2025-06-30" name="tssi:PrepaidExpenseAndOtherCurrentAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">1,055</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1828" contextRef="AsOf2024-12-31" name="tssi:PrepaidExpenseAndOtherCurrentAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">230</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Property and equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1831" contextRef="AsOf2025-06-30" name="tssi:PropertyPlantAndEquipmentNetTotal" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">979</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1830" contextRef="AsOf2024-12-31" name="tssi:PropertyPlantAndEquipmentNetTotal" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">29</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1833" contextRef="AsOf2025-06-30" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">22,939</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1832" contextRef="AsOf2024-12-31" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">24,213</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Other assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1835" contextRef="AsOf2025-06-30" name="us-gaap:OtherAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,647</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1834" contextRef="AsOf2024-12-31" name="us-gaap:OtherAssets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">2,768</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Consolidated total assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1837" contextRef="AsOf2025-06-30" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">139,470</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1836" contextRef="AsOf2024-12-31" name="us-gaap:Assets" format="ixt:numdotdecimal" unitRef="USD" decimals="-3" scale="3">96,568</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><ix:nonNumeric id="fid_1077" contextRef="From2025-01-01to2025-06-30" name="us-gaap:SubsequentEventsTextBlock" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 7 &#8211; Subsequent Events</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">On July 5, 2025, the outstanding $<ix:nonFraction id="fid_1840" contextRef="AsOf2025-07-05_us-gaap_SubsequentEventMember" name="us-gaap:ConstructionLoan" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" scale="6">20.0</ix:nonFraction> million principal balance on our Credit Agreement, used to finance the build-out of our facility in Georgetown, Texas, converted to a fully amortizing term loan with a final due date of January 5, 2030 and monthly payments of approximately $<ix:nonFraction id="fid_1841" contextRef="AsOf2025-07-05_us-gaap_SubsequentEventMember" name="tssi:MonthlyPaymentOfLoanUnderCreditAgreement" format="ixt:numdotdecimal" unitRef="USD" decimals="0">437,000</ix:nonFraction> beginning on August 5, 2025.&#160; As the loan bears a floating interest rate, the total payment will fluctuate from time to time with prevailing interest rates.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">18</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><span class="atag" style="display: inline" id="MDA"><strong>Item 2. Management</strong>&#8217;<strong>s Discussion and Analysis of Financial Condition and Results of Operations.</strong></span></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Management&#8217;s Discussion and Analysis of Financial Condition and Result of Operations is intended to inform the reader about matters affecting the financial condition and results of operations of TSS, Inc. and its subsidiaries (collectively &#8220;we&#8221;, &#8220;us&#8221;, &#8220;our&#8221;, TSS or the Company).&#160; The following discussion should be read in conjunction with, and is qualified in its entirety by reference to, the condensed consolidated financial statements and notes thereto included in Item 1 of this Form 10-Q and the consolidated financial statements and notes thereto and our Management</em>&#8217;<em>s Discussion and Analysis of Financial Condition and Results of Operations for the year ended December 31, 2024 included in our 2024 Annual Report on Form 10-K. This report contains forward-looking statements, within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934, that involve risks and uncertainties. Our expectations with respect to future results of operations that may be embodied in oral and written forward-looking statements, including any forward-looking statements that may be included in this report, are subject to risks and uncertainties that must be considered when evaluating the likelihood of our realization of such expectations. Our actual results could differ materially. The words </em>&#8220;<em>believe,</em>&#8221;<em> </em>&#8220;<em>expect,</em>&#8221;<em> </em>&#8220;<em>intend,</em>&#8221;<em> </em>&#8220;<em>plan,</em>&#8221;<em> </em>&#8220;<em>project,</em>&#8221;<em> </em>&#8220;<em>will</em>&#8221;<em> and similar phrases as they relate to us are intended to identify such forward-looking statements. In addition, please see the </em>&#8220;<em>Risk Factors</em>&#8221;<em> in Part 1, Item 1A of our 2024 Annual Report on Form 10-K for a discussion of items that may affect our future results.</em>&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Overview</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">TSS, Inc. ("TSS&#8221;, the "Company&#8221;, "we&#8221;, "us&#8221; or "our&#8221;) provides a comprehensive suite of services for the planning, design, deployment, maintenance and refresh of end-user and enterprise systems, including the mission-critical data center facilities in which they are housed. We provide a single source solution for enabling technologies in data centers, operations centers, network facilities, server rooms, security operations centers, communications facilities and the infrastructure systems that are critical to their function. Our services consist of technology consulting, design and engineering, project management, systems integration, systems installation, facilities management and IT procurement services. Beginning in 2024, our systems integration services have been enhanced to include integration of Artificial Intelligence (AI) enabled data center server racks.&#160; TSS was incorporated in Delaware in December 2004.&#160; We recently relocated our corporate offices and primary integration facility from Round Rock, Texas to Georgetown, Texas and continue to operate a second integration facility at our former corporate office in Round Rock, Texas.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We support a broad range of enterprise customers who utilize our services to deploy solutions in their own data centers, in modular data centers (MDCs), in colocation facilities or at the edge of the network. This market remains highly competitive and is subject to constant evolution as new computing technologies or applications drive continued demand for more advanced computing and storage capacity. In recent years, these enterprises have shifted their investment priorities towards AI and accelerated computing infrastructure initiatives. Enterprise and data center operators are facing immense pressure to rapidly integrate and deploy the latest generative AI equipment and GPUs (Graphics Processing Units) and will need to adapt these next-generation servers and custom rack-scale architectures to quickly and successfully compete in the market. Ensuring adequate power and thermal management systems are implemented to support these new technologies while meeting increasingly stringent sustainability requirements is critical to a successful deployment. TSS exists to assist these operators in achieving these benefits over the life cycle of their IT investments.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Over the last ten years, we have optimized our business of providing world-class integration services to our customer base. As computing technologies evolve and as we see new power and cooling technologies emerge, including direct liquid-cooled IT solutions and the rapid adoption of AI computing solutions, we will continue to adapt our systems integration business to support these new products. We will also continue to offer expanded services to enable the integration, deployment, support, and maintenance of these new IT solutions. We compete in expanding market segments, often against larger competitors who have extensive resources. We rely on several large relationships and one US-based OEM (original equipment manufacturer) strategic customer to win contracts and to provide business to us under a Master Relationship Agreement.&#160; A material decline in volume from, or loss of this OEM customer would have a material effect on our results.&#160; Our operational focus is to ensure this does not occur.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Most of the components used in our systems integration business are consigned to us by our largest OEM customer or its end-user customers. Thus, our revenues reflect only the services we provide, and the consigned components are not reflected in our income statement or on our balance sheet. We also offer our customers procurement services whereby we procure third-party hardware, software and services on their behalf. Our configuration and integration services businesses often integrate these components to deliver a complete system to our customers. &#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In October 2024, we signed a multi-year agreement with our largest customer to provide systems integration services for AI-enabled computer racks at an expected minimum monthly volume.&#160; To support this level of production, and to be able to provide increased volumes over our prior facility, we have moved our headquarters and production facility to a new location in 2025.&#160; Through June 30, 2025, we have invested approximately $31.6 million in improvements to that leased facility, primarily to significantly increase the available electrical power and related cooling capabilities for both air-cooled and direct liquid cooled (&#8220;DLC&#8221;) computer racks.&#160; We are financially responsible for all fixed and variable costs related to this activity, including debt service requirements related to the capital expenditures, direct and indirect labor related to this activity, and all facility and related costs.&#160; While there may be some variability in the number of racks built in any given period, we believe the structure of the agreement with our customer provides reasonable assurance to us that absent our material breach of the agreement or our termination of the agreement, the revenues we earn from this arrangement will consistently be sufficient to cover the aforementioned costs we expect to incur in fulfilling our obligations.&#160; Our customer could terminate the agreement if we were to materially breach the agreement, leaving us with the financial obligations of the lease and debt service regardless of whether we had revenues sufficient to cover those costs.&#160; Likewise, if we were to terminate the agreement other than due to the other party&#8217;s material breach of the agreement, the other party would be relieved of any further obligation. Funding sources for the build-out costs at the new facility include approximately $6.8 million to be contributed by our landlord, $20 million from a bank construction loan, and cash on hand for the remainder of the costs.&#160; The construction loan is expandable up to $25 million with bank approval.&#160; We borrowed $8.7 million on the loan on December 31, 2024 and drew down the remaining $11.3 million in May 2025, which reimbursed us for capital expenditures we had previously funded using cash on hand.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">19</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The volume of our strategic procurement services grew substantially in the quarter and six-month periods ended June 30, 2025 compared to the quarter and six-month periods ended June 30, 2024. Customers value our ability to source disparate hardware, software and services and provide a single-source solution for their IT needs. In some cases, we merely act as agents in these transactions, and so the reported revenues will reflect only our fees earned in the transaction (&#8220;net deals&#8221;).&#160; If the procurement activities include integration services or other value-add work beyond just the procurement activity, the transaction is recorded at its gross value (&#8220;gross deals&#8221;), and revenue and costs are allocated to the procurement and systems integration segments based on the value created in each and the effort involved to fulfill the contracts.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>RESULTS OF OPERATIONS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Three Months Ended June 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Unless otherwise noted, all comparisons in this section are between the three-month period ended June 30, 2025 (the &#8220;current quarter&#8221; or &#8220;this quarter&#8221;) and the three-month period ended June 30, 2024 (the &#8220;prior year quarter&#8221; or &#8220;this quarter last year&#8221;).</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Revenues</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Revenues consist of fees earned from planning, design and project management for mission-critical facilities and information infrastructures, as well as fees earned from providing maintenance services for these facilities. We also earn revenues from providing system configuration and integration services, and procurement services, to IT equipment vendors. We began integration services on AI racks in June 2024 and have continued with that activity throughout the current quarter.&#160; Currently we derive all our revenue from the U.S. market.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We contract with our customers under various contract types: fixed-price service and maintenance contracts, time and material contracts, cost-plus-fee, guaranteed maximum price and fixed-price contracts. Cost-plus-fee and guaranteed maximum price contracts are typically lower risk arrangements and thus yield lower profit margins than time-and-materials and fixed-price arrangements, which generally generate higher profit margins, relative to their higher risk. Certain of our service and maintenance contracts provide comprehensive coverage of all the customers&#8217; equipment (excluding IT equipment) at a facility during the contract period. Where customer requirements are clear, we prefer to enter comprehensive fixed-price arrangements or time-and-materials arrangements rather than cost-plus-fee and guaranteed maximum price contracts.&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Most of our revenue is generated based on services provided either by our employees or subcontractors. To a lesser degree, the revenue we earn includes reimbursable travel and other costs to support the project. Since we earn higher profits from the labor services that our employees provide compared with the use of subcontracted labor and other reimbursable costs, we seek to optimize our labor content on the contracts we are awarded to maximize our profitability.&#160; Occasionally, our revenues will reflect certain reimbursements received from customers for expanding our capacity, typically through capital expenditure or for adding headcount to support specific customer requests. &#160;In 2024, we invested approximately $1.7 million in our Round Rock facility to expand our capacity to integrate generative AI-enabled server racks, including both air cooled and direct-liquid cooled systems.&#160; One of our customers reimbursed us for the majority of those investments and we are amortizing that reimbursement into service integration revenues over the expected useful life of three years.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Our maintenance and integration services traditionally earn higher margins and maintenance contracts typically renew annually, providing consistency and predictability of revenues. We focus our design and project management services on smaller jobs typically connected with addition or retrofit activities to obtain better margins and a more predictable pattern of earnings than are typically seen when such efforts are concentrated in fewer high-value contracts for the construction of new data centers, which would otherwise require greater levels of working capital and tend to yield lower margins. We have also focused on providing maintenance services for modular data center applications as this market has expanded. We continue to focus on increasing our systems integration revenues through more consistent revenue streams that will better utilize our assets in that business, and through adding revenue streams such as procurement services to help drive volume through the integration facility.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">20</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Total revenues in the current quarter increased 262% to $44.0&#160;million, driven primarily by significant growth in procurement and systems integration activities.&#160; Procurement revenues increased by $28.1 million (572%) and systems integration revenues increased by $4.5 million (91%).&#160; These increases were somewhat offset by a $0.8 million (35%) decrease in revenue from the facilities management segment.&#160;&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The $4.5 million (91%) increase in systems integration revenues was due primarily to the continued growth in integration of AI-enabled computer racks, which began with significant volume in June 2024.&#160; With the October 2024 signing of a multi-year agreement to continue integrating AI-enabled racks at certain minimum volumes, we expect for the next several years for systems integration revenues to continue at or above the elevated levels seen in the three most recent quarters. This agreement calls for certain minimum monthly payments to us, which we believe will be sufficient to cover the majority of the costs for the facility and debt service payments tied to the build-out of that factory for which we are responsible.&#160; While those payments are required under the terms of this agreement, our customer could terminate the agreement if we were to materially breach it, leaving us with the financial obligations of the facility and debt service regardless of whether we have revenues sufficient to cover those costs.&#160; Likewise, if we were to terminate the agreement other than due to our customer&#8217;s material breach of the agreement, they would be relieved of any further obligation.&#160; If the customer were to terminate the agreement for convenience, they would continue to be obligated to pay us for the monthly fixed charge, but would no longer have any minimum volume commitments, as discussed below.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In addition to the fixed monthly fees to which we are entitled under that agreement, we also receive payments that scale depending on the volume of AI racks integrated and for which we are prepared to integrate.&#160; To mitigate the impact of demand fluctuations and supply-chain issues on our growing AI-enabled rack integration business, our primary customer has committed to pay us for maintaining staffing levels to support an agreed minimum weekly quantity of racks.&#160; To the extent we do not meet the minimum weekly volume due to our production downtime or labor shortages compared to agreed-upon levels, we will reduce the fee, billing only for the quantity of racks we actually configured or could have configured given the actual staffing levels.&#160; We contractually agreed to use commercially reasonable efforts to mitigate our customer&#8217;s costs for under-utilized staff, including during periods of extended lulls in demand or supply chain issues experienced by our customer.&#160; While any reduction in available staff reduces the revenues to which we are entitled under this agreement, we believe our long-term partnership with our customer is strengthened as we help them mitigate a portion of the costs for which they would otherwise be responsible.&#160; The periodic reduction of revenues has a muted impact on our overall results, as we also reduce our labor costs in line with the reduced revenues.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Our non-AI rack integration services, without such minimum commitments, may be impacted by periodic supply chain issues for certain components and lulls in demand. These supply chain disruptions periodically cause delays in the timing of systems integration revenue for us as we await delivery of required components, and our vendors and partners expect these supply-chain issues to continue for at least the next several quarters, though they appear to be improving in general.&#160; It is not yet known the extent to which tariffs currently threatened or imposed by the United States may or may not impact these supply chain issues.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The increase in procurement revenues was driven primarily by an increase in purchases from the federal government, combined with a mix shift with a greater proportion of the revenues coming from gross deals, as opposed to net deals.&#160; As much of our procurement business is ultimately related to federal government buying, we believe this can contribute to some variability of these revenues from quarter to quarter.&#160; We cannot accurately predict when government-related or other large enterprise procurement activity will occur.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Due to the lighter effort required to execute procurement transactions, the gross margins are less robust in that line of business.&#160; As a result, increases and decreases in that business have a smaller impact on our overall margins and profitability compared to increases in the facilities management or systems integration lines of business.&#160; The following table presents the results of our procurement activities, both in terms of the gross value of the transactions, regardless of whether they were recorded as gross deals or net deals, along with the recorded values, to aid in an analysis of the underlying economics (unaudited, in thousands, except percentages):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2024</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Increase</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Percentage Increase</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Recognized Values (GAAP):</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Recognized value of all procurement deals</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">33,002</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4,914</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">28,088</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">572</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Recognized cost of revenues</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">30,463</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4,201</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">26,262</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">625</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Gross profit</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2,539</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">713</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1,826</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">256</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Gross margin based on recognized value of transactions</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7.7</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">14.5</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Gross Values (Non-GAAP):</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Gross value of all procurement deals</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">65,731</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">20,988</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">44,743</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">213</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Cost of revenues</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">63,192</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">20,275</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">42,917</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">212</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Gross profit</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2,539</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">713</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1,826</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">256</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Gross margin based on gross value of transactions</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">3.9</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">3.4</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">21</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table provides a reconciliation of the non-GAAP figures presented above to the most closely related GAAP figures presented. We review these non-GAAP figures not as a substitute for the GAAP figures, but to help our internal analysis of the underlying economics of each transaction as we do not believe the GAAP figures are as useful for that purpose as are the non-GAAP measures considered on a gross basis &#160;(unaudited, in thousands):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended June 30, 2025</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended June 30, 2024</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Recognized revenue of all procurement deals - GAAP</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">33,002</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4,914</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Materials costs incurred but excluded from both recorded revenues and costs (also known as &#8220;netting&#8221;)</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">32,729</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">16,074</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross value of revenues including netting (non-GAAP)</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">65,731</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">20,988</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Recognized cost of goods for all procurement deals - GAAP</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">30,463</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4,201</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Materials costs incurred but excluded from both recorded revenues and costs (also known as &#8220;netting&#8221;)</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">32,729</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">16,074</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross value of costs of goods including netting (non-GAAP)</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">63,192</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">20,275</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The gross value of all procurement transactions increased 213% from the prior year quarter, from $21.0 million to $65.7 million in the current quarter.&#160; The majority of the current quarter&#8217;s procurement transactions were gross deals, whereas a greater portion of the prior year quarter&#8217;s transactions were net deals, in which we record only our agent fee as revenues.&#160; As a result, the recorded revenue increased from $4.9 million in the prior year quarter to $33.0 million in the current quarter.&#160; Gross profit recognized on all procurement transactions increased 256% from $0.7 million to $2.5 million before interest charges.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Although the margins are less robust than our other lines of business, efforts required to support the procurement business are minimal, so any incremental activity remains additive to our net income and can lead to additional cross-selling opportunities for &#160;higher yielding integration services, so we continue to view this business as a growth vehicle.&#160; As mentioned previously, the procurement business can fluctuate widely from quarter to quarter, and the recorded revenues can fluctuate even more widely if there is a substantial shift between gross and net deals, even if the underlying economics between the two are relatively similar.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Cost of Revenue and Gross Margins</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Cost of revenue includes the cost of component parts for our products, labor costs expended in the production and delivery of our services, subcontractor and third-party expenses, equipment and other costs associated with our test and integration facilities, shipping costs, and the costs of support functions such as purchasing, logistics and quality assurance. Our consolidated gross margin was 18% for the current quarter compared to 37% for the prior year quarter. The blended decrease was driven primarily by the outsized increase in the lower margin procurement business in relation to the remainder of the organization.&#160; Gross margins for the current quarter were 8% for the procurement business, 44% for the systems integration business, and 74% for the facilities management business.&#160; In the prior year quarter, gross margins were 15% for the procurement business, 43% for the systems integration business and 74% for the facilities management business.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Procurement Segment: Calculated using the non-GAAP gross value of all transactions, procurement gross margins improved from 3.4% in the prior year quarter to 3.9% in the current quarter. The impact of this margin improvement on consolidated gross profit was further enhanced by the 213% increase in the volume of procurement activities, also calculated using the non-GAAP gross value of all procurement transactions.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Systems Integration Segment: Further contributing to the growth in consolidated gross profits was the 95% increase in systems integration gross profit to $4.2 million in the current quarter. This was driven by the net effect of a 91% growth in systems integration segment revenues and a slightly smaller 88% growth in segment cost of revenues, from $2.8 million to $5.3 million. Although we did not begin paying cash rent at our new production facility in Georgetown, Texas until May 7, 2025, the current quarter systems integration cost of revenues includes $0.3 million of rent expense on our new Georgetown location prior to the beginning of cash rent, recognized on a straight-line basis in addition to bearing the majority of occupancy costs at our existing Round Rock, Texas production facility as it has in prior periods. The current period also includes certain uncapitalizable costs related to readying our new facility, which we would not expect to repeat in most future periods, though we will likely have some additional one-time costs in the third fiscal quarter of 2025 as we complete the physical move to the new facility. When we started producing from, and started paying cash rent at, the new facility in May 2025, the fixed fee we earn from our customer under our multi-year AI rack integration contract increased by an amount intended to cover such incremental occupancy costs and other fixed costs. This segment continues to bear the majority of the facility costs for not only our new facility in Georgetown, Texas that came online in the current quarter, but also the costs related to our old facility in Round Rock, Texas. We have begun marketing the Round Rock facility for sublease and will continue to bear the cost of that facility until it is either subleased or re-deployed for other uses.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Facilities Management Segment: Gross margins in the facilities management segment remained robust at 74% in the current quarter, consistent with the prior year quarter. Compared to the prior-year quarter, maintenance revenues decreased from $1.3 million to $1.0 million in the current quarter, and the prior year quarter included $1.0 million of deployment and other services compared to $0.5 million in the current quarter. Whereas maintenance revenues are more predictable, the timing of such discrete projects tends to fluctuate from quarter to quarter. In the remaining six months of 2025, we expect such discrete projects to exceed the level of discrete projects seen in the last six months of 2024.</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">22</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Since we earn higher profits when using our own labor, we expect gross margins to improve when our labor mix increases relative to the use of subcontracted labor or third-party labor. Our direct labor costs are relatively fixed in the short-term, and the utilization of direct labor is critical to maximizing our profitability. As we continue to bid and win contracts that require specialized skills that we do not possess, we would expect to have more third-party subcontracted labor to help us fulfill those contracts. In addition, we can face hiring challenges in internally staffing larger contracts. While these factors could lead to a higher ratio of cost of services to revenue, the ability to outsource these activities without carrying a higher level of fixed overhead improves our overall profitability by increasing income, broadening our revenue base and generating a favorable return on invested capital. In periods when we increase the level of IT procurement services, we anticipate that our overall blended gross margin percentages will be lower in those periods, even as our gross profits increase, as the normal margins on procurement activities are lower than the margins from our traditional facilities and systems integration services.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">A large portion of our revenue is derived from fixed price contracts. Under such contracts, we set the price of our services and assume the risk that the costs associated with our performance may be greater than we anticipated. Our profitability is therefore dependent upon our ability to accurately estimate the costs associated with our services. These costs may be affected by a variety of factors such as lower than anticipated productivity, conditions at the work sites differing materially from what was anticipated at the time we bid on the contract and higher than expected costs of materials and labor. Certain agreements or projects could have lower margins than anticipated or losses if actual costs for contracts exceed our estimates, which could reduce our profitability and liquidity.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Selling, General and Administrative (SG&amp;A) Expenses</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Selling, general and administrative expenses consist primarily of compensation and related expenses, including sales commissions and other incentive compensation for our executive, administrative and sales and marketing personnel, as well as related travel, selling and marketing expenses, professional fees, facility costs, insurance and other corporate costs. As a percentage of gross profit, our SG&amp;A costs in the current quarter are 61% compared to 60% of gross profit in the prior year quarter.&#160; In dollar terms, our SG&amp;A expenses increased by $2.0 million in the current quarter compared to the prior year quarter primarily due to higher headcount and related compensation costs to support the growing scale of the organization combined with higher accruals for incentive compensation tied directly to the improvements in sales and earnings.&#160; Also included in the current quarter are incremental costs for the 2024 annual audit, incentive compensation and personal property taxes, each of which exceeded our estimates recorded in prior periods.&#160; The current quarter&#8217;s SG&amp;A expenses include $0.9 million of non-cash equity-based compensation compared to $0.2 million in the prior year quarter.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Depreciation and Amortization</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Depreciation and amortization increased from $0.1 million in the prior year quarter to $0.8 million in the current quarter due to two full months of depreciation being recognized on our new factory that was first put into service in May 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Operating Income</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Operating income was $2.2 million in the current quarter compared to $1.7 million in the prior year quarter.&#160; Although gross profit increased 72% in the current quarter, the operating expenses, comprised of higher SG&amp;A and depreciation and amortization increased by 97%, leading to the net 32% improvement in operating income.&#160; As revenues continue to ramp at the new factory and SG&amp;A costs moderate, we anticipate operating income in the final six months of 2025 will exceed the comparable period of 2024.&#160; If we are successful in subleasing our prior Round Rock, Texas facility, that will further enhance our operating income in future periods.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Interest Expense and Interest Income</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In the current quarter, we recorded interest expense of $0.9 million compared to $0.4 million in the prior year quarter. The increase was due to the increase in the gross value of procurement transactions and other revenues from our primary customer in the current quarter compared to the prior year quarter, combined with the interest on our outstanding $20.0 million construction loan, whereas we had no outstanding debt in the prior year quarter.&#160; The factoring charge we incur is based on the total gross value of transactions with our largest customer, including the gross value of procurement deals, whether we account for such deals as gross or net deals.&#160; During the current quarter, we borrowed the remaining $11.3 million of our available construction loan, increasing the outstanding principal balance from $8.7 million to $20.0 million.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">23</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Due primarily to the higher average balance of cash on hand in the current quarter, interest income increased to $0.2 million compared to $0.1 million earned in the prior year quarter.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Net Income</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">After a $0.1 million charge for income taxes, our net income was $1.5 million, or $0.06 per diluted share in the current quarter, compared to $1.4 million, or $0.06 per diluted share in the prior year quarter.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Six Months Ended June 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Unless otherwise noted, all comparisons in this section are between the six-month period ended June 30, 2025 (the &#8220;current year-to-date period&#8221; or &#8220;current period&#8221;) and the six-month period ended June 30, 2024 (the &#8220;prior year-to-date period,&#8221; &#8220;prior year period&#8221; or &#8220;this period last year&#8221;).</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Revenues</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Total revenues in the current year-to-date period increased 410% to $142.9&#160;million, driven primarily by significant growth in our two largest segments - procurement and systems integration.&#160; Procurement revenues increased by $106.6 million (645%) and systems integration revenues increased by $9.9 million (140%).&#160; These increases were somewhat offset by a $1.7 million (37%) decrease in revenue from the facilities management segment, primarily due to the timing of discrete projects in the facilities management business and a smaller decrease in ongoing maintenance revenues.&#160;&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The $9.9 million (140%) increase in systems integration revenues was due primarily to the continued growth in integration of AI-enabled computer racks, which began with significant volume in June 2024.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The increase in procurement revenues was driven primarily by an increase in purchases from the federal government and certain large purchases from private companies, combined with a mix shift with a greater proportion of the revenues coming from gross deals, as opposed to net deals.&#160; As much of our procurement business is ultimately related to federal government buying, we believe this can contribute to some variability of these revenues from quarter to quarter.&#160; We cannot accurately predict when government-related or other large procurement activity will occur.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Due to the lighter effort required to execute procurement transactions, the gross margins are less robust in that line of business.&#160; As a result, increases and decreases in that business have a smaller impact on our overall margins and profitability compared to increases in the facilities management or systems integration lines of business.&#160; The following table presents the results of our procurement activities, in terms of the gross value of the transactions, regardless of whether they were recorded as gross deals or net deals, along with the recorded values, to aid in an analysis of the underlying economics (unaudited, in thousands, except percentages):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2024</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Increase</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Percentage Increase</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Recognized Values (GAAP):</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Recognized value of all procurement deals</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">123,179</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">16,538</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">106,641</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">645</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Recognized cost of revenues</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">113,612</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">14,916</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">98,696</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">662</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="TEXT-INDENT: 15px;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross profit</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">9,567</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1,622</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7,945</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">490</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Gross margin based on recognized value of transactions</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7.8</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">9.8</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Gross Values (Non-GAAP):</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="TEXT-INDENT: 30px;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross value of all procurement deals</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">171,712</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">40,944</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">$</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">130,768</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">319</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Cost of revenues</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">162,145</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">39,322</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">122,823</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">312</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Gross profit</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">9,567</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1,622</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7,945</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">490</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Gross margin based on gross value of transactions</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">5.6</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.0</p></td><td style="width:1%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">%</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">24</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table provides a reconciliation of the non-GAAP figures presented above to the most closely related GAAP figures presented. We review these non-GAAP figures not as a substitute for the GAAP figures, but to help in our internal analysis of the underlying economics of each transaction as we do not believe the GAAP figures are as useful for that purpose as are the non-GAAP measures considered on a gross basis&#160; (unaudited, in thousands):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30, 2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Recognized revenue of all procurement deals - GAAP</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Materials costs incurred but excluded from both recorded revenues and costs (also known as &#8220;netting&#8221;)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">48,533</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">24,406</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross value of revenues including netting (non-GAAP)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;">171,712</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;">40,944</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Recognized cost of goods for all procurement deals - GAAP</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">113,612</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,916</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Materials costs incurred but excluded from both recorded revenues and costs (also known as &#8220;netting&#8221;)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">48,533</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;width:9%;vertical-align:bottom;text-align:right;">24,406</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross value of costs of goods including netting (non-GAAP)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;">162,145</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;">39,322</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The gross value of all procurement transactions increased 319% from the prior year-to-date period, from $40.9 million to $171.7 million in the current year-to-date period.&#160; The majority of the current period&#8217;s procurement transactions were gross deals, whereas a greater portion of the prior year period&#8217;s transactions were net deals, in which we record only our agent fee as revenues.&#160; As a result, the recorded revenue increased from $16.5 million in the prior year period to $123.2 million in the current year period.&#160; Gross profit recognized on all procurement transactions increased 490% from $1.6 million to $9.6 million before interest charges.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Although the margins are less robust than our other lines of business, efforts required to support the procurement business are minimal, so any incremental activity remains additive to our net income and can lead to additional cross-selling opportunities for&#160; higher yielding integration services, so we continue to view this business as a growth vehicle.&#160; As mentioned previously, the procurement business can fluctuate widely from quarter to quarter, and the recorded revenues can fluctuate even more widely if there is a substantial shift between gross and net deals, even if the underlying economics between the two are relatively similar.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Cost of Revenue and Gross Margins</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Cost of revenue includes the cost of component parts for our products, labor costs expended in the production and delivery of our services, subcontractor and third-party expenses, equipment and other costs associated with our test and integration facilities, shipping costs, and the costs of support functions such as purchasing, logistics and quality assurance. Our consolidated gross margin was 12% for the current year-to-date period compared to 26% for the prior year-to-date period. The blended decrease was driven primarily by the outsized increase in the lower margin procurement business in relation to the remainder of the organization.&#160; Gross margins for the current year-to-date period were 8% for the procurement business, 34% for the systems integration business, and 59% for the facilities management business.&#160; In the prior year-to-date period, gross margins were 10% for the procurement business, 39% for the systems integration business and 65% for the facilities management business.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Procurement Segment: Calculated using the non-GAAP gross value of all transactions, procurement gross margins improved from 4.0% in the prior year period to 5.6% in the current year-to-date period. The impact of this margin improvement on consolidated gross profit was further enhanced by the 319% increase in the volume of procurement activities, also calculated using the non-GAAP gross value of all procurement transactions.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Systems Integration Segment: Further contributing to the growth in consolidated gross profits was the 113% increase in systems integration gross profit, to $5.8 million in the current year-to-date period. This was driven by the net effect of a 140% growth in systems integration segment revenues and a 157% growth in segment cost of revenues, from $4.3 million to $11.1 million. Although we did not begin paying cash rent at our new production facility in Georgetown, Texas until May 7, 2025, the current year-to-date systems integration cost of revenues includes approximately $1.0 million of rent expense on our new Georgetown location prior to the beginning of cash rent, recognized on a straight-line basis in addition to bearing the majority of occupancy costs at our existing Round Rock, Texas production facility as it has in prior periods. The current period also includes certain uncapitalizable costs related to readying our new facility, which we would not expect to repeat in most future periods, though we will likely have some additional one-time costs in the third fiscal quarter of 2025 as we complete the physical move to the new facility. Excluding the $1.0 million of non-cash rent at the new facility for the period prior to beginning operations in Georgetown, systems integration gross margins were 40% in the current year-to-date period compared to 39% in the prior year period, and gross profits improved from $2.7 million to $6.8 million in the current year-to-date period. When we started producing from, and started paying cash rent at, the new facility in May 2025, the fixed fee we earn from our customer under our multi-year AI rack integration contract increased by an amount intended to cover such incremental occupancy costs and other fixed costs. This segment continues to bear the majority of the facility costs for not only our new facility in Georgetown, Texas that came online in May 2025, but also the costs related to our old facility in Round Rock, Texas. We have begun marketing the Round Rock facility for sublease and will continue to bear the cost of that facility until it is either subleased or re-deployed for other uses.</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Facilities Management Segment: Gross margins in the facilities management segment were 59% in the current year-to-date period, down slightly from 65% in the prior year-to-date period. With the cost of revenues improving from $1.5 million to $1.1 million, the lower margin was driven by a decrease in segment revenues. Compared to the prior-year-to-date period, maintenance revenues decreased from $2.6 million to $1.9 million in the current year-to-date period, and the prior year period included $1.8 million of deployment and other discrete services compared to $0.9 million in the current year-to-date period. Whereas maintenance revenues are more predictable, the timing of such discrete projects tends to fluctuate from quarter to quarter. In the remaining six months of 2025, we expect such discrete projects to exceed the level of discrete projects seen in the last six months of 2024.</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">25</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Selling, General and Administrative (SG&amp;A) Expenses</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As a percentage of gross profit, our SG&amp;A expenses in the current year-to-date period improved to 57% from 70% of gross profit in the prior year-to-date period.&#160; In dollar terms, our SG&amp;A expenses increased by $4.5 million (88%) in the current year-to-date period primarily due to higher headcount and related compensation costs to support the growing scale of the organization combined with higher accruals for incentive compensation tied directly to the improvements in sales and earnings.&#160; Included in the current period are incremental costs for the 2024 annual audit, incentive compensation and personal property taxes that exceeded our estimates recorded in prior periods.&#160; The current year-to-date period&#8217;s SG&amp;A expenses include $1.8 million of non-cash equity-based compensation compared to $0.3 million in the prior year-to-date period.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Depreciation and Amortization</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Depreciation and amortization increased from $0.2 million in the prior year period to $1.1 million in the current year-to-date period due to two full months of depreciation being recognized on our new factory that was first put into service in May 2025.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Operating Income</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Operating income was $6.3 million in the current year-to-date period compared to $2.0 million in the prior year-to-date period.&#160; We have effectively leveraged our expense structure, increasing gross profit at a faster pace (135%) than our operating expenses (102%), leading to a 225% growth in operating income.&#160;&#160;&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Interest Expense and Interest Income</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In the current year-to-date period, we recorded interest expense of $2.3 million compared to $0.7 million in the prior year-to-date period. The increase was due to the increase in the gross value of procurement transactions and other revenues from our primary customer in the current period compared to the prior year-to-date period, combined with the interest on our outstanding construction loan, whereas we had no outstanding debt in the prior year period.&#160; The factoring charge we incur is based on the total gross value of transactions with our largest customer, including the gross value of procurement deals whether we account for such deals as gross or net deals.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Due primarily to the higher average balance of cash on hand in the current year-to-date period, interest income increased to $0.6 million compared to $0.2 million earned in the prior year-to-date period.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Net Income</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">After a $0.1 million increase in income taxes related to our improved year-to-date operating results, our current year-to-date net income was $4.5 million, or $0.17 per diluted share, compared to a net income of $1.4 million, or $0.06 per diluted share in the prior year-to-date period.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>LIQUIDITY AND CAPITAL RESOURCES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Our primary sources of liquidity at June 30, 2025 are our cash and cash equivalents on hand, vendor trade-credit, projected cash flows from operating activities and approximately $6.8 million of tenant improvement funds we expect to collect from our landlord once all construction lien waivers are received.&#160; Subject to bank approval, we may also exercise an accordion feature on our construction loan to increase the borrowings on that loan by up to $5.0 million beyond the $20.0 million borrowed at June 30, 2025.&#160; In the past two years, we have also received certain reimbursements from our largest customer to help us expand our capacity to serve them and could receive similar reimbursements in future periods if they ask us to expand to even greater capacity.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As discussed above, we signed a multi-year agreement in 2024 to integrate an expected minimum weekly volume of AI-enabled computer racks for several years.&#160; Due to the increasing power and cooling demands expected in upcoming generations of those racks, we leased a new facility in Georgetown, Texas which can provide sufficient power for the foreseeable future and began operations in that facility in May 2025.&#160; The new facility is almost 213,000 square feet compared to the 105,000 square foot leased facility in which we previously operated.&#160; Through June 30, 2025, we have invested approximately $31.6 million in that facility, funded with a $20 million construction loan and cash on hand.&#160; In the current year-to-date period, we borrowed the remaining $11.3 million available on the construction loan beyond the $8.7 million that was outstanding at the beginning of the year.&#160; On July 5, 2025, the outstanding $20.0 million balance converted to a fully amortizing term loan with a maturity date of January 5, 2030.&#160; The monthly payment will vary somewhat as the loan bears a floating interest rate, with monthly principal and interest payments of approximately $437,000 beginning in August 2025.&#160; We anticipate receiving funds from our customer sufficient to offset the debt service for the full term of this debt and the majority of the costs to operate the new facility as most of that facility will be dedicated to that activity.&#160; If we are unable to sublease our prior 105,000 square foot facility, we may incur the costs of two facilities for a period of time. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">26</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The majority of the Company&#8217;s receivables are from a single customer with 80-day payment terms.&#160; We generally factor our receivables from that customer through a bank factor, so that we are paid within 2-3 days of invoicing rather than needing to wait the full term to receive funds.&#160; We believe this is an efficient program, as we estimate the effective annualized interest rate to utilize that program is less than the rate at which we could borrow funds.&#160; We hold excess funds in an interest-bearing account so that we can earn some interest income on the funds we receive immediately from the factoring program but do not have to pay to our vendors for 30-45 days on typical payment terms.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As of June 30, 2025 and December 31, 2024, we had cash, cash equivalents and restricted cash of $41.8 million and $23.2 million, respectively.&#160; At both dates, $5.0 million of that amount was held in a money market account as collateral against our outstanding bank debt and therefore is not immediately accessible other than to use for repayment of the debt.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><em>Significant sources and uses of cash</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Operating activities:</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Cash provided by operating activities was $37.0 million in the current year-to-date period, compared to a use of $1.7 million in the prior year-to-date period. This change in cash provided by operating activities was primarily attributable to the significant increase in contribution from the AI-rack integration services combined with the financial impacts of our procurement services and the large increase in procurement services near the end of the current period for which we have already been paid under our factoring program but for which we have not yet had to pay our vendors.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Primarily driving the operating cash flow in the current period was a $26.8 million increase in accounts payable, combined with a $3.1 million decrease in inventory on hand and $4.0 million in favorable movements of other operating assets and liabilities, net of cash uses for the $3.6 million change in costs and estimated earnings in excess of billings on uncompleted contracts and a $0.7 million increase in prepaid assets and other assets, primarily for the payment of annual insurance premiums.&#160; Changes in our receivables, inventory, and accounts payable during the current period are attributable primarily to the timing of procurement transactions, with some of the accounts payable increase also related to construction costs. We have been able to structure our procurement activities in such a way as to minimize their overall impact on our liquidity by using trade creditors as the primary means to finance these activities. However, due to timing it is possible to see fluctuations on a quarterly or annual basis for procurement contracts in progress at the end of a particular reporting period. We believe that we will have adequate trade credit available to us to continue financing our procurement activities as we grow this business during 2025 and beyond. These changes were further enhanced by the $4.5 million net income in the current year-to-date period vs. net income of $1.4 million in the prior year-to-date period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Investing activities:</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We invested $25.8 million of cash in the six months ended June 30, 2025 primarily in the buildout of our new leased integration facility and headquarters.&#160; These costs are largely for enhancements to our electrical and cooling systems to support our growth in AI-enabled rack integration.&#160; This compares to only $1.7 million invested in capital assets in the prior year-to-date period.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Financing activities:</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In the current period, loan proceeds to fund our construction provided $11.3 million of cash, offset by $3.9 million used to repurchase treasury stock from employees, for net cash inflows from financing activities of $7.4 million.&#160; This compares to $0.1 million of cash used in the prior year-to-date period to repurchase treasury stock from employees.&#160; &#160;To minimize dilution to our shareholders, we generally allow employees to &#8220;net settle&#8221; upon the vesting of restricted stock and upon stock option exercises, allowing them to forfeit a portion of the shares sufficient to cover their tax obligation and the option exercise price, and we then use the Company&#8217;s cash to pay the employee&#8217;s taxes.&#160; None of the share repurchases were open-market transactions and there is no approved share buyback program in place other than allowing employees to net settle.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">27</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><em>Future uses of cash</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Our business plans and our assumptions around the adequacy of our liquidity are based on estimates regarding future revenues and costs and our ability to secure sources of funding when needed. However, our revenues may not meet our expectations and our costs may exceed our estimates. Further, our estimates may change and future events or developments may affect our estimates. Any of these factors may change our expectations of cash usage during 2025 and beyond or significantly affect our level of liquidity, which could require us to take other measures to raise funds or reduce our operating costs in order to continue operating. Any action to reduce operating costs may negatively affect our range of products and services that we offer or our ability to deliver such products and services, which could materially affect our financial results depending on the level of cost reductions taken.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Our primary liquidity and capital requirements are to fund working capital from current operations including the elevated level of accounts payable related to our procurement activities and construction costs, and to fund the repurchase of treasury shares from employees upon option exercises or vesting of restricted stock to allow them to cover their tax liabilities. Our primary sources of funds to meet our liquidity and capital requirements include cash on hand and funds generated from operations including the funds from our customer financing program, combined with the potential $5.0 million accordion feature on our construction loan to finance the investment in our new facility, as well as $6.8 million of tenant improvements from our landlord following receipt of all lien waivers on our construction. We believe that if future results do not meet expectations, we can implement reductions in selling, general and administrative expenses to better achieve profitability and therefore improve cash flows, or that we could take further steps such as the issuance of new equity or debt. However, the timing and effect of these steps may not completely alleviate a material effect on liquidity. We may also require additional capital if we seek to introduce a new line of business or if we seek to acquire additional businesses, further expand our facility, or operate both facilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><em>Off-Balance Sheet Arrangements </em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As of June 30, 2025 and December 31, 2024, we had no off-balance sheet arrangements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><em>Critical Accounting Policies and Pronouncements</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">There have been no material changes to our critical accounting policies and estimates as set forth in the Annual Report for the year ended December 31, 2024&#160;on our consolidated financial statements and disclosures. See also Item 1. Financial Statements <em>Note 1 </em>&#8211;<em> Significant Accounting Policies</em> regarding Recent Accounting Pronouncements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">28</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><span class="atag" style="display: inline" id="I3">Item 3. Quantitative and Qualitative Disclosures about Market Risk.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Our debt, with an outstanding principal balance of $20.0 million at June 30, 2025, bears a variable interest rate that fluctuates with prevailing 1-month SOFR (Secured Overnight Financing Rate).&#160; We cannot accurately predict whether effective rates will increase or decrease, or by what degree.&#160; Hypothetically, if annual rates were to average twenty-five basis points (0.0025%) higher or lower than current rates over the next twelve months, we would expect our annual interest expense to increase or decrease, respectively, by approximately $50,000. In the most recently quarter ended June 30, 2025, this exposure has increased as the outstanding principal on the debt has increased from $8.7 million to $20.0 million.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The rates we pay to factor the gross value of the majority of our accounts receivable are also based on prevailing SOFR and increases or decreases in prevailing SOFR will increase or decrease the related factoring costs, recorded as interest expense.&#160; Assuming a hypothetical gross value of accounts factored of $200 million and a 78-day effective period (80-day terms on our accounts receivable in which our customer pays the bank factor minus the two days in which our bank factor typically pays us), a hypothetical twenty-five basis point increase or decrease in prevailing SOFR would result in an increase or decrease of annual interest expense, respectively, of approximately $107,000.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><span class="atag" style="display: inline" id="I4">Item 4. Controls and Procedures.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We maintain disclosure controls and procedures designed to provide reasonable assurance that information required to be disclosed in reports filed or submitted under the&#160;Exchange Act of 1934, as amended (&#8220;the &#8220;Exchange Act&#8221;)&#160;is recorded, processed, summarized and reported within the time periods specified in the Securities and Exchange Commission&#8217;s rules and forms and accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial Officer, or persons performing similar functions, as appropriate to allow timely decisions regarding required disclosures.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Due to its inherent limitations, any system of internal control over financial reporting, no matter how well defined, may not prevent or detect misstatements. In addition, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Our management, with the participation of our Chief Executive Officer and our Chief Financial Officer, conducted an evaluation, as of the end of the period covered by this report, of the effectiveness of our disclosure controls and procedures, as such term is defined in&#160;Exchange Act&#160;Rule 13a-15(e). Based on this evaluation, our Chief Executive Officer and our Chief Financial Officer have concluded that, as of June 30, 2025, our disclosure controls and procedures, as defined in Rule 13a-15(e), were&#160;ineffective&#160;at the reasonable assurance level as we have not yet fully remediated and validated the effective remediation of a material weakness in internal control over financial reporting first identified in the year ended December 31, 2024 as described below.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Material Weakness</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">During the audit of the Annual Report on Form 10-K for the year ended December 31, 2024, we identified a material weakness in our internal control over financial reporting relating to the&#160;ineffective&#160;design of certain management review controls across a portion of the Company&#8217;s financial statements, leading to adjustments that were and could have been material to our 2024 consolidated financial statements.&#160; Due to the fact that our internal controls over financial reporting during that period did not identify, prevent or detect these risks of material misstatements, we determined this indicates a&#160; material weakness in our internal control over financial reporting.&#160; We believe the root causes of the control deficiencies were primarily a number of manual processes in our closing process, combined with challenges in properly segregating duties due to the relatively small size of our accounting department and additional controls needed.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">To formally remediate controls, companies must not only update or put into place controls such that they are designed and operate effectively, but such effective operation must be evaluated and verified over a period of time before we determine the control deficiencies that led to the material weakness have formally been remediated.&#160; In order to remediate the control deficiencies leading to the material weakness, we have made certain improvements to our internal controls in the first six months of 2025, plan to make further enhancements, have enhanced management review of certain areas, and have determined to engage external experts to assist the Company in more formally designing and documenting our controls.&#160; We have also committed to more fully documenting the performance of the controls themselves so that they not only operate effectively but so that there is also sufficient audit evidence that may be reviewed, so that others may verify the effective operation of the controls.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We are committed to maintaining a strong internal control environment and implementing measures designed to help ensure that control deficiencies contributing to the material weaknesses are remediated as soon as possible.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Notwithstanding the material weakness described above, management has concluded that the condensed consolidated financial statements included in this Quarterly Report on Form 10-Q for the three-month and six-month periods ended June 30, 2025 present fairly, in all material respects, our financial position, results of operations and cash flows in conformity with GAAP.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Changes in Internal Control over Financial Reporting</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">There were no changes in our internal control over financial reporting (as defined in&#160;Rule 13a-15(f) under the&#160;Exchange Act) that occurred during the quarter ended June 30, 2025, that has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting except as described above.&#160; As described above, we have made certain improvements and plan further improvements to our internal control over financial reporting in periods after the period covered by this quarterly report on Form 10-Q, but those controls have not yet been fully implemented or evaluated to determine that they have effectively remediated the material weakness identified above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">29</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><span class="atag" style="display: inline" id="P2">PART II - OTHER INFORMATION</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><span class="atag" style="display: inline" id="I2">Item 2. Unregistered Sales of Equity Securities and Use of Proceeds.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:left;">The following table sets forth information about our purchases of outstanding shares of our common stock during the quarter ended June 30, 2025:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Monthly Period During the Quarter Ended</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>June 30, 2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Shares</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Purchased</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Price paid</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>per Share</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Shares</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Purchased as</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Part</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>of Publicly</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Announced Plans</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Approximate</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Dollar</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares Yet</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>To</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Be</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Purchased</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Under</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Plans</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">April 1, 2025 &#8211; April 30, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,930</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6.55</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">May. 1, 2025 &#8211; May 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23,766</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14.44</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">June 1, 2025 &#8211; June 30, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">69,407</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">27.14</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">99,103</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">22.86</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">(a) All of these shares were acquired from associates to satisfy tax withholding requirements upon the vesting of restricted stock or accepted as the exercise price for associates exercising stock options.&#160; None were open market trades.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">30</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><span class="atag" style="display: inline" id="IT6">Item 6. Exhibits. </span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px;background-color:#cceeff"><td style="width:8%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tssi_ex311.htm">31.1*</a></p></td><td style="width:2%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tssi_ex311.htm">Certification of TSS, Inc. Chief Executive Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.</a></p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tssi_ex312.htm">31.2*</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tssi_ex312.htm">Certification of TSS, Inc. Chief Financial Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.</a></p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tssi_ex321.htm">32.1**</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tssi_ex321.htm">Certification of TSS, Inc. Chief Executive Officer pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.</a></p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tssi_ex322.htm">32.2**</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tssi_ex322.htm">Certification of TSS, Inc. Chief Financial Officer pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</a></p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px;background-color:#cceeff"><td style="width:8%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">101.INS *</p></td><td style="width:2%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inline XBRL Instance Document</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">101.SCH *</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inline XBRL Taxonomy Extension Schema</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">101.CAL *</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inline XBRL Taxonomy Extension Calculation Linkbase</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">101.DEF *</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inline XBRL Taxonomy Extension Definition Linkbase</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">101.LAB *</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inline XBRL Taxonomy Extension Label Linkbase</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">101.PRE*</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inline XBRL Taxonomy Extension Presentation Linkbase</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">104</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cover Page Interactive Data File (formatted as inline XBRL and contained in Exhibit 101)</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">*</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Filed herewith.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">**</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furnished herewith.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">31</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#TOC">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="SIG">SIGNATURES</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Pursuant to the requirements of the Securities Exchange Act of 1934, as amended, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>TSS, INC.</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="width:50%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:3%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:35%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:12%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Date: August 11, 2025</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">/s/ Daniel M. Chism</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Daniel M. Chism</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Financial Officer</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Financial Officer)</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">32</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>tssi_ex311.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tssi_ex311.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp; </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 31.1</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 24pt; text-align:center;"><strong>CERTIFICATION BY PRINCIPAL EXECUTIVE OFFICER</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 24pt; text-align:center;"><strong>UNDER SECTION 302 OF THE SARBANES</strong>&#8211;<strong>OXLEY ACT OF 2002</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">I, Darryll E. Dewan, certify that:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">1. I have reviewed this Quarterly Report on Form 10-Q of TSS, Inc.;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">2. Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">3. Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for the periods presented in this report;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">4. 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:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(a) designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b) designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(c) evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(d) disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">5. The registrant&#8217;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or person performing the equivalent functions):</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(a) all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information; and</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b) any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:50%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">August 11, 2025</p></td> <td style="width:3%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/s/ Darryll E. Dewan</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Darryll E. Dewan</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">President and Chief Executive Officer</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Executive Officer)</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>3
<FILENAME>tssi_ex312.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tssi_ex312.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: left; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp; </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 31.2</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 24pt; text-align:center;"><strong>CERTIFICATION BY PRINCIPAL FINANCIAL OFFICER</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 24pt; text-align:center;"><strong>UNDER SECTION 302 OF THE SARBANES</strong>&#8211;<strong>OXLEY ACT OF 2002</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">I, Daniel M. Chism, certify that:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">1. I have reviewed this Quarterly Report on Form 10-Q of TSS, Inc.;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">2. Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">3. Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">4. 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:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">(a) designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">(b) designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">(c) evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">(d) disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">5. The registrant&#8217;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or person performing the equivalent functions):</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">(a) all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information; and</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">(b) any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:50%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">August 11, 2025</p></td> <td style="width:3%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/s/ Daniel M. Chism</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Daniel M. Chism</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Financial Officer</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Financial Officer)</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>4
<FILENAME>tssi_ex321.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tssi_ex321.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: left; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp; </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 32.1</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 24pt; text-align:center;"><strong>CERTIFICATION OF PRINCIPAL EXECUTIVE OFFICER</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 24pt; text-align:center;"><strong>UNDER SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002 (18 U.S.C. 1350)</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In connection with the Quarterly Report on Form 10-Q for the quarter ended June 30, 2025 (the &#8220;Report&#8221;) of TSS, Inc. (the &#8220;Registrant&#8221;), as filed with the Securities and Exchange Commission on the date hereof (the &#8220;Report&#8221;), I, Darryll E. Dewan, President and Chief Executive Officer of the Registrant, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="margin:0px">(1)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px;text-indent:30px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(2)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Registrant.</p></td></tr></table>&nbsp; <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">A signed original of this written statement required by Section 906 has been provided to the Registrant and will be retained by the Registrant and furnished to the Securities and Exchange Commission or its staff upon request.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:50%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Date: August 11, 2025</p></td> <td style="width:3%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/s/ Darryll E. Dewan</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Darryll E. Dewan</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">President and Chief Executive Officer</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Executive Officer)</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>5
<FILENAME>tssi_ex322.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tssi_ex322.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: left; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp; </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 32.2</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 24pt; text-align:center;"><strong>CERTIFICATION OF PRINCIPAL FINANCIAL OFFICER</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 24pt; text-align:center;"><strong>UNDER SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002 (18 U.S.C. 1350)</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In connection with the Quarterly Report on Form 10-Q for the quarter ended June 30, 2025 (the &#8220;Report&#8221;) of TSS, Inc. (the &#8220;Registrant&#8221;), as filed with the Securities and Exchange Commission on the date hereof (the &#8220;Report&#8221;), I, Daniel M. Chism, Chief Financial Officer of the Registrant, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="margin:0px">(1)</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:left;">The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; text-align:left;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; TEXT-INDENT: 30px; text-align:left;">&nbsp;</p></td> <td> <p style="MARGIN: 0px; text-align:left;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="MARGIN: 0px; text-align:left;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:left;">(2)</p></td> <td style="vertical-align:top;"> <p style="MARGIN: 0px; text-align:left;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Registrant.</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px;text-indent:30px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr></table>&nbsp; <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">A signed original of this written statement required by Section 906 has been provided to the Registrant and will be retained by the Registrant and furnished to the Securities and Exchange Commission or its staff upon request.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:50%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Date: August 11, 2025</p></td> <td style="width:3%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/s/ Daniel M. Chism</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Daniel M. Chism</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Financial Officer</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Financial Officer)</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>6
<FILENAME>tssi-20250630.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 08/10/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<schema xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:currency="http://xbrl.sec.gov/currency/2025" xmlns:us-gaap-att="http://fasb.org/us-gaap/attributes" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:us-types="http://fasb.org/us-types/2025" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:country="http://xbrl.sec.gov/country/2025" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2025" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:srt="http://fasb.org/srt/2025" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:ecd="http://xbrl.sec.gov/ecd/2025" xmlns:cyd="http://xbrl.sec.gov/cyd-af-sub/2025" xmlns:ffd="http://xbrl.sec.gov/ffd/2025" xmlns:tssi="http://tssi.com/20250630" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://tssi.com/20250630">
  <annotation>
    <appinfo>
      <link:roleType roleURI="http://tssi.com/role/Cover" id="Cover">
        <link:definition>000001 - Document - Cover</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/CondensedConsolidatedBalanceSheets" id="CondensedConsolidatedBalanceSheets">
        <link:definition>110200 - Statement - Condensed Consolidated Balance Sheets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals" id="ConsolidatedBalanceSheetsParentheticals">
        <link:definition>110201 - Statement - Consolidated Balance Sheets (Parentheticals)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations" id="UnauditedConsolidatedStatementsOfOperations">
        <link:definition>124100 - Statement - Unaudited 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://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" id="UnauditedConsolidatedStatementsOfChangesInStockholdersEquity">
        <link:definition>148600 - Statement - Unaudited Consolidated Statements of Changes in Stockholders Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows" id="UnauditedConsolidatedStatementsOfCashFlows">
        <link:definition>170000 - Statement - Unaudited 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://tssi.com/role/InsiderTradingArragements" id="InsiderTradingArragements">
        <link:definition>995445 - Disclosure - Insider Trading Arragements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SignificantAccountingPolicies" id="SignificantAccountingPolicies">
        <link:definition>995446 - Disclosure - 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://tssi.com/role/SupplementalBalanceSheetInformation" id="SupplementalBalanceSheetInformation">
        <link:definition>995447 - Disclosure - Supplemental Balance Sheet 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://tssi.com/role/LongTermDebt" id="LongTermDebt">
        <link:definition>995448 - Disclosure - Long Term Debt</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/LeasingArrangements" id="LeasingArrangements">
        <link:definition>995449 - Disclosure - Leasing Arrangements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/EarningsPerShare" id="EarningsPerShare">
        <link:definition>995450 - 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://tssi.com/role/SegmentReporting" id="SegmentReporting">
        <link:definition>995451 - Disclosure - Segment Reporting</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SubsequentEvents" id="SubsequentEvents">
        <link:definition>995452 - 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://tssi.com/role/SignificantAccountingPoliciesPolicies" id="SignificantAccountingPoliciesPolicies">
        <link:definition>995453 - Disclosure - 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://tssi.com/role/SignificantAccountingPoliciesTables" id="SignificantAccountingPoliciesTables">
        <link:definition>995454 - Disclosure - 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://tssi.com/role/SupplementalBalanceSheetInformationTables" id="SupplementalBalanceSheetInformationTables">
        <link:definition>995455 - Disclosure - Supplemental Balance Sheet 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://tssi.com/role/LeasingArrangementsTables" id="LeasingArrangementsTables">
        <link:definition>995456 - Disclosure - Leasing Arrangements (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://tssi.com/role/EarningsPerShareTables" id="EarningsPerShareTables">
        <link:definition>995457 - 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://tssi.com/role/SegmentReportingTables" id="SegmentReportingTables">
        <link:definition>995458 - Disclosure - Segment Reporting (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://tssi.com/role/SignificantAccountingPoliciesDetails" id="SignificantAccountingPoliciesDetails">
        <link:definition>995459 - Disclosure - Significant Accounting Policies (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails1" id="SignificantAccountingPoliciesDetails1">
        <link:definition>995460 - Disclosure - Significant Accounting Policies (Details 1)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails2" id="SignificantAccountingPoliciesDetails2">
        <link:definition>995461 - Disclosure - Significant Accounting Policies (Details 2)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails3" id="SignificantAccountingPoliciesDetails3">
        <link:definition>995462 - Disclosure - Significant Accounting Policies (Details 3)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative" id="SignificantAccountingPoliciesDetailsNarrative">
        <link:definition>995463 - Disclosure - Significant Accounting Policies (Details Narrative)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails" id="SupplementalBalanceSheetInformationDetails">
        <link:definition>995464 - Disclosure - Supplemental Balance Sheet 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://tssi.com/role/SupplementalBalanceSheetInformationDetails1" id="SupplementalBalanceSheetInformationDetails1">
        <link:definition>995465 - Disclosure - Supplemental Balance Sheet Information (Details 1)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails2" id="SupplementalBalanceSheetInformationDetails2">
        <link:definition>995466 - Disclosure - Supplemental Balance Sheet Information (Details 2)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails3" id="SupplementalBalanceSheetInformationDetails3">
        <link:definition>995467 - Disclosure - Supplemental Balance Sheet Information (Details 3)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails4" id="SupplementalBalanceSheetInformationDetails4">
        <link:definition>995468 - Disclosure - Supplemental Balance Sheet Information (Details 4)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails5" id="SupplementalBalanceSheetInformationDetails5">
        <link:definition>995469 - Disclosure - Supplemental Balance Sheet Information (Details 5)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails6" id="SupplementalBalanceSheetInformationDetails6">
        <link:definition>995470 - Disclosure - Supplemental Balance Sheet Information (Details 6)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails7" id="SupplementalBalanceSheetInformationDetails7">
        <link:definition>995471 - Disclosure - Supplemental Balance Sheet Information (Details 7)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails8" id="SupplementalBalanceSheetInformationDetails8">
        <link:definition>995472 - Disclosure - Supplemental Balance Sheet Information (Details 8)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative" id="SupplementalBalanceSheetInformationDetailsNarrative">
        <link:definition>995473 - Disclosure - Supplemental Balance Sheet Information (Details Narrative)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/LongTermDebtDetailsNarrative" id="LongTermDebtDetailsNarrative">
        <link:definition>995474 - Disclosure - Long Term Debt (Details Narrative)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/LeasingArrangementsDetails" id="LeasingArrangementsDetails">
        <link:definition>995475 - Disclosure - Leasing Arrangements (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://tssi.com/role/LeasingArrangementsDetails1" id="LeasingArrangementsDetails1">
        <link:definition>995476 - Disclosure - Leasing Arrangements (Details 1)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/LeasingArrangementsDetailsNarrative" id="LeasingArrangementsDetailsNarrative">
        <link:definition>995477 - Disclosure - Leasing Arrangements (Details Narrative)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/EarningsPerShareDetails" id="EarningsPerShareDetails">
        <link:definition>995478 - 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://tssi.com/role/EarningsPerShareDetailsNarrative" id="EarningsPerShareDetailsNarrative">
        <link:definition>995479 - Disclosure - Earnings Per-Share (Details Narrative)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SegmentReportingDetails" id="SegmentReportingDetails">
        <link:definition>995480 - Disclosure - 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://tssi.com/role/SegmentReportingDetails1" id="SegmentReportingDetails1">
        <link:definition>995481 - Disclosure - Segment Reporting (Details 1)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SegmentReportingDetails2" id="SegmentReportingDetails2">
        <link:definition>995482 - Disclosure - Segment Reporting (Details 2)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tssi.com/role/SubsequentEventsDetailsNarrative" id="SubsequentEventsDetailsNarrative">
        <link:definition>995483 - Disclosure - Subsequent Events (Details Narrative)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbaseRef xlink:type="simple" xlink:href="tssi-20250630_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="tssi-20250630_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tssi-20250630_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="tssi-20250630_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
    </appinfo>
  </annotation>
  <import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" />
  <import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <import namespace="http://xbrl.sec.gov/country/2025" schemaLocation="https://xbrl.sec.gov/country/2025/country-2025.xsd" />
  <import namespace="http://xbrl.sec.gov/currency/2025" schemaLocation="https://xbrl.sec.gov/currency/2025/currency-2025.xsd" />
  <import namespace="http://xbrl.sec.gov/dei/2025" schemaLocation="https://xbrl.sec.gov/dei/2025/dei-2025.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/2009/arcrole/fact-explanatoryFact" schemaLocation="http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <import namespace="http://fasb.org/srt-types/2025" schemaLocation="https://xbrl.fasb.org/srt/2025/elts/srt-types-2025.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" />
  <import namespace="http://fasb.org/us-types/2025" schemaLocation="https://xbrl.fasb.org/us-gaap/2025/elts/us-types-2025.xsd" />
  <import namespace="http://fasb.org/srt/2025" schemaLocation="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd" />
  <import namespace="http://fasb.org/us-gaap/2025" schemaLocation="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd" />
  <import namespace="http://xbrl.sec.gov/ecd/2025" schemaLocation="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd" />
  <element id="tssi_TreasuryStocksCommonValue" name="TreasuryStocksCommonValue" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_RevenueFromProcurement" name="RevenueFromProcurement" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_RevenueFromFacilitiesManagement" name="RevenueFromFacilitiesManagement" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_RevenueFromSystemIntegration" name="RevenueFromSystemIntegration" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_TreasuryStockSharesAcquiredCostMethod" name="TreasuryStockSharesAcquiredCostMethod" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_TreasuryStockValuesAcquiredCostMethod" name="TreasuryStockValuesAcquiredCostMethod" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_IncreaseDecreaseInRightOfUseAsset" name="IncreaseDecreaseInRightOfUseAsset" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_CashAndCashEquivalentsBeginningOfPeriod" name="CashAndCashEquivalentsBeginningOfPeriod" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_RestrictedCashBeginningOfPeriod" name="RestrictedCashBeginningOfPeriod" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" name="CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_CashAndCashEquivalentsEndOfPeriod" name="CashAndCashEquivalentsEndOfPeriod" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_RestrictedCashEndOfPeriod" name="RestrictedCashEndOfPeriod" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods" name="CashCashEquivalentsAndRestrictedCashEndOfPeriods" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable" name="NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_MaintenanceServicesPolicyTextBlock" name="MaintenanceServicesPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_IntegrationServicesPolicyTextBlock" name="IntegrationServicesPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_EquipmentAndMaterialSalesPolicyTextBlock" name="EquipmentAndMaterialSalesPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_DeploymentAndOtherServicesPolicyTextBlock" name="DeploymentAndOtherServicesPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_ProcurementServicesPolicyTextBlock" name="ProcurementServicesPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_JudgmentsPolicyTextBlock" name="JudgmentsPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_SalesTaxesPolicyTextBlock" name="SalesTaxesPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_NonRecourseFactoringPolicyTextBlock" name="NonRecourseFactoringPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" name="ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_TreasuryStockPolicyTextBlock" name="TreasuryStockPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock" name="ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_ScheduleOfOperatingLeaseInformationTableTextBlock" name="ScheduleOfOperatingLeaseInformationTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_ConcentrationRiskPercentages" name="ConcentrationRiskPercentages" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_AggregateGrossAmountFactored" name="AggregateGrossAmountFactored" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_RecoveryOfAmountsPreviouslyReserved" name="RecoveryOfAmountsPreviouslyReserved" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_AmountsWrittenOff" name="AmountsWrittenOff" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_UnrestrictedCashBalance" name="UnrestrictedCashBalance" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_AllowanceForDoubtfulAccounts" name="AllowanceForDoubtfulAccounts" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_CashDepositInAMoneyMarketAccount" name="CashDepositInAMoneyMarketAccount" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_ConcentrationRiskPercentageOne" name="ConcentrationRiskPercentageOne" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_Goodwills" name="Goodwills" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_DeferredRevenueRelatedToProcurementServices" name="DeferredRevenueRelatedToProcurementServices" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_DeferredRevenueRelatedToIntegrationServices" name="DeferredRevenueRelatedToIntegrationServices" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_PropertyPlantAndEquipmentEstimatedUsefulLife" name="PropertyPlantAndEquipmentEstimatedUsefulLife" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_OtherNonCurrentAssetsNet" name="OtherNonCurrentAssetsNet" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_ContractAssetsIncludesAccountsReceivable" name="ContractAssetsIncludesAccountsReceivable" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_FloorInterestRatePerAnnumOfDebt" name="FloorInterestRatePerAnnumOfDebt" nillable="true" xbrli:periodType="instant" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_DefaultInterestRatePerAnnumOfDebt" name="DefaultInterestRatePerAnnumOfDebt" nillable="true" xbrli:periodType="instant" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_CreditAgreementDescription" name="CreditAgreementDescription" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_LineOfCreditFacilityMinimumLiquidityThreshold" name="LineOfCreditFacilityMinimumLiquidityThreshold" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_LeverageRatioDescription" name="LeverageRatioDescription" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement" name="LineOfCreditFacilityCurrentBorrowingCapacityIncrement" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" name="OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_TotalOperatingLeaseCost" name="TotalOperatingLeaseCost" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_OperatingLeaseRightOfUseAssets" name="OperatingLeaseRightOfUseAssets" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" name="LesseeOperatingLeaseLiabilityPaymentsDueYearSix" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" name="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_OperatingLeaseRemainingLeaseTerm" name="OperatingLeaseRemainingLeaseTerm" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_CapitalExpendituresAssets" name="CapitalExpendituresAssets" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" name="LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_CombinedTotalAssetsIncludedInSegments" name="CombinedTotalAssetsIncludedInSegments" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_PrepaidExpenseAndOtherCurrentAssets" name="PrepaidExpenseAndOtherCurrentAssets" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_PropertyPlantAndEquipmentNetTotal" name="PropertyPlantAndEquipmentNetTotal" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_MonthlyPaymentOfLoanUnderCreditAgreement" name="MonthlyPaymentOfLoanUnderCreditAgreement" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_SignificantAccountingPoliciesAbstract" name="SignificantAccountingPoliciesAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_SupplementalBalanceSheetInformationAbstract" name="SupplementalBalanceSheetInformationAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tssi_LeasingArrangementsAbstract" name="LeasingArrangementsAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element name="FacilitiesSegmentMember" id="tssi_FacilitiesSegmentMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="IntegrationServicesMember" id="tssi_IntegrationServicesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="SystemIntegrationServicesSegmentMember" id="tssi_SystemIntegrationServicesSegmentMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ProcurementServicesMember" id="tssi_ProcurementServicesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ProcurementRevenuesSegmentMember" id="tssi_ProcurementRevenuesSegmentMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="USBasedITOEMCompanyMember" id="tssi_USBasedITOEMCompanyMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RevenuesMember" id="tssi_RevenuesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="MaintenanceContractsObligationsMember" id="tssi_MaintenanceContractsObligationsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ProcurementAndIntegrationServicesMember" id="tssi_ProcurementAndIntegrationServicesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="BottomMember" id="tssi_BottomMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="TopMember" id="tssi_TopMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ComputerEquipmentAndSoftwareMember" id="tssi_ComputerEquipmentAndSoftwareMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="TradeEquipmentMember" id="tssi_TradeEquipmentMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="FurnitureAndFixtureMember" id="tssi_FurnitureAndFixtureMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ConstructionInProcessMember" id="tssi_ConstructionInProcessMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="CreditAgreementMember" id="tssi_CreditAgreementMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="BasicNetIncomePerShareMember" id="tssi_BasicNetIncomePerShareMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="DilutedNetIncomePerShareMember" id="tssi_DilutedNetIncomePerShareMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ProcurementMember" id="tssi_ProcurementMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="SystemIntegrationMember" id="tssi_SystemIntegrationMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="TreasuryCommonSharesMember" id="tssi_TreasuryCommonSharesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="EquipmentDeploymentAndOtherServicesMember" id="tssi_EquipmentDeploymentAndOtherServicesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
</schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>7
<FILENAME>tssi-20250630_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 08/10/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" roleURI="http://www.xbrl.org/2009/role/negatedLabel" />
  <link:roleRef xlink:type="simple" roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" roleURI="http://www.xbrl.org/2009/role/netLabel" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CoverAbstract_lbl" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType" xlink:label="dei_DocumentType" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntitySmallBusiness_lbl" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityShellCompany_lbl" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCurrentReportingStatus_lbl" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFilerCategory_lbl" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xml:lang="en-US">Entity Common Stock Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFileNumber_lbl" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US">Entity Incorporation State Country Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US">Entity Address Address Line 1</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US">Entity Address City Or Town</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US">Entity Address State Or Province</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US">Entity Address Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CityAreaCode_lbl" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LocalPhoneNumber_lbl" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12bTitle_lbl" xml:lang="en-US">Security 12b Title</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_TradingSymbol_lbl" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityExchangeName_lbl" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentQuarterlyReport_lbl" xml:lang="en-US">Document Quarterly Report</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentTransitionReport_lbl" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine2_lbl" xml:lang="en-US">Entity Address Address Line 2</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine3" xlink:label="dei_EntityAddressAddressLine3" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine3" xlink:to="dei_EntityAddressAddressLine3_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine3_lbl" xml:lang="en-US">Entity Address Address Line 3</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl_c29307" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl_c29307" xml:lang="en-US">Condensed Consolidated Balance Sheets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl_93d2c5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrentAbstract_lbl_93d2c5" xml:lang="en-US">Current Assets:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_3eb9c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_3eb9c4" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesNetCurrent" xlink:to="us-gaap_ReceivablesNetCurrent_lbl_0930bf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesNetCurrent_lbl_0930bf" xml:lang="en-US">Contract and other receivables, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_lbl_e61ded" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl_e61ded" xml:lang="en-US">Costs and estimated earnings in excess of billings on uncompleted contracts</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl_805b4b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryNet_lbl_805b4b" xml:lang="en-US">Inventories, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl_19c02b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl_19c02b" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl_ff00a1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AssetsCurrent_lbl_ff00a1" xml:lang="en-US">Total current assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrent_lbl_8" xml:lang="en-US">[Assets, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl_06a8d3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl_06a8d3" xml:lang="en-US">Property and equipment, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl_86c54d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl_86c54d" xml:lang="en-US">Lease right-of-use asset</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_lbl_14f250" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Goodwill_lbl_14f250" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedCash" xlink:label="us-gaap_RestrictedCash" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedCash" xlink:to="us-gaap_RestrictedCash_lbl_85a60b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestrictedCash_lbl_85a60b" xml:lang="en-US">Restricted cash</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl_c3be9b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl_c3be9b" xml:lang="en-US">Other assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl_4efa45" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Assets_lbl_4efa45" xml:lang="en-US">Total assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl_14" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Assets_lbl_14" xml:lang="en-US">[Assets]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl_d6a77f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl_d6a77f" xml:lang="en-US">Current Liabilities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent_lbl_852a63" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent_lbl_852a63" xml:lang="en-US">Accounts payable and accrued expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueCurrent" xlink:to="us-gaap_DeferredRevenueCurrent_lbl_cde2ea" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenueCurrent_lbl_cde2ea" xml:lang="en-US">Deferred revenues, current</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl_3cefc7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_3cefc7" xml:lang="en-US">Lease liabilities, current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl_88a2d1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesCurrent_lbl_88a2d1" xml:lang="en-US">Total current liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl_19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrent_lbl_19" xml:lang="en-US">[Liabilities, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrentAbstract" xlink:to="us-gaap_LiabilitiesNoncurrentAbstract_lbl_b31b7a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract_lbl_b31b7a" xml:lang="en-US">Non-current Liabilities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtNoncurrent" xlink:to="us-gaap_LongTermDebtNoncurrent_lbl_45bda9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl_45bda9" xml:lang="en-US">Long-term debt, non-current</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_e08398" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_e08398" xml:lang="en-US">Lease liabilities, non-current</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueNoncurrent" xlink:to="us-gaap_DeferredRevenueNoncurrent_lbl_1ad590" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenueNoncurrent_lbl_1ad590" xml:lang="en-US">Deferred revenues, non-current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl_228496" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl_228496" xml:lang="en-US">Total non-current liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="us-gaap_LiabilitiesNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl_24" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl_24" xml:lang="en-US">[Liabilities, Noncurrent]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl_549b82" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Liabilities_lbl_549b82" xml:lang="en-US">Total liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl_25" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Liabilities_lbl_25" xml:lang="en-US">[Liabilities]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl_4beec5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl_4beec5" xml:lang="en-US">Commitments and Contingencies (Note 1)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl_e44e02" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityAbstract_lbl_e44e02" xml:lang="en-US">Stockholders' Equity:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl_c710d4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockValue_lbl_c710d4" xml:lang="en-US">Preferred stock, $.0001 par value; 1,000 shares authorized; none issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl_4db720" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockValue_lbl_4db720" xml:lang="en-US">Common stock, $.0001 par value; 49,000 shares authorized; 25,975 and 25,250 issued; 23,740 and 23,107 outstanding at June 30, 2025 and December 31, 2024, respectively</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital_lbl_9a625d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapital_lbl_9a625d" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStocksCommonValue" xlink:label="tssi_TreasuryStocksCommonValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TreasuryStocksCommonValue" xlink:to="tssi_TreasuryStocksCommonValue_lbl_58eb7e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_TreasuryStocksCommonValue_lbl_58eb7e" xml:lang="en-US">Treasury stock, at cost; 1,975 and 1,849 shares at June 30, 2025 and December 31, 2024</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl_f1bc58" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl_f1bc58" xml:lang="en-US">Accumulated deficit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_54dc9f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_StockholdersEquity_lbl_54dc9f" xml:lang="en-US">Total stockholders' equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_33" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquity_lbl_33" xml:lang="en-US">[Equity, Attributable to Parent]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl_15c9f0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl_15c9f0" xml:lang="en-US">Total liabilities and stockholders' equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl_34" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl_34" xml:lang="en-US">[Liabilities and Equity]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_lbl_2a84a4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl_2a84a4" xml:lang="en-US">Common Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl_8a9f53" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl_8a9f53" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl_ee49c3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesIssued_lbl_ee49c3" xml:lang="en-US">Common Stock, Shares, Issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl_78215e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl_78215e" xml:lang="en-US">Common Stock, Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_fea196" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_fea196" xml:lang="en-US">Preferred Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl_00ef87" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl_00ef87" xml:lang="en-US">Preferred Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl_b03689" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesIssued_lbl_b03689" xml:lang="en-US">Preferred Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="us-gaap_TreasuryStockCommonShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockCommonShares" xlink:to="us-gaap_TreasuryStockCommonShares_lbl_b49ed6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockCommonShares_lbl_b49ed6" xml:lang="en-US">Treasury Stock, Common, Shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl_476e92" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementAbstract_lbl_476e92" xml:lang="en-US">Unaudited Consolidated Statements of Operations</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenuesAbstract" xlink:label="us-gaap_RevenuesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenuesAbstract" xlink:to="us-gaap_RevenuesAbstract_lbl_4f9692" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenuesAbstract_lbl_4f9692" xml:lang="en-US">Revenues:</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromProcurement" xlink:label="tssi_RevenueFromProcurement" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_RevenueFromProcurement" xlink:to="tssi_RevenueFromProcurement_lbl_b6424d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_RevenueFromProcurement_lbl_b6424d" xml:lang="en-US">Procurement</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromFacilitiesManagement" xlink:label="tssi_RevenueFromFacilitiesManagement" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_RevenueFromFacilitiesManagement" xlink:to="tssi_RevenueFromFacilitiesManagement_lbl_f2acf2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_RevenueFromFacilitiesManagement_lbl_f2acf2" xml:lang="en-US">Facilities management</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromSystemIntegration" xlink:label="tssi_RevenueFromSystemIntegration" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_RevenueFromSystemIntegration" xlink:to="tssi_RevenueFromSystemIntegration_lbl_53bc2e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_RevenueFromSystemIntegration_lbl_53bc2e" xml:lang="en-US">System integration</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Revenues" xlink:to="us-gaap_Revenues_lbl_7fafb2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Revenues_lbl_7fafb2" xml:lang="en-US">Total revenues</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Revenues" xlink:to="us-gaap_Revenues_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Revenues_lbl_6" xml:lang="en-US">[Revenues]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenue" xlink:to="us-gaap_CostOfRevenue_lbl_d0c48b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfRevenue_lbl_d0c48b" xml:lang="en-US">Cost of revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl_780236" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_GrossProfit_lbl_780236" xml:lang="en-US">Gross profit</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GrossProfit_lbl_8" xml:lang="en-US">[Gross Profit]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpensesAbstract_lbl_3afd90" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingExpensesAbstract_lbl_3afd90" xml:lang="en-US">Operating expenses:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense_lbl_3107c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_lbl_3107c4" xml:lang="en-US">Selling, general and administrative</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl_e5246e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepreciationAndAmortization_lbl_e5246e" xml:lang="en-US">Depreciation and amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl_90a3c7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingExpenses_lbl_90a3c7" xml:lang="en-US">Total operating expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingExpenses_lbl_12" xml:lang="en-US">[Operating Expenses]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl_61d0e3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingIncomeLoss_lbl_61d0e3" xml:lang="en-US">Income from operations</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl_13" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingIncomeLoss_lbl_13" xml:lang="en-US">[Operating Income (Loss)]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl_071851" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpense_lbl_071851" xml:lang="en-US">Interest expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeOther" xlink:to="us-gaap_InterestIncomeOther_lbl_a5fbcb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InterestIncomeOther_lbl_a5fbcb" xml:lang="en-US">Interest income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeOther" xlink:label="us-gaap_InterestIncomeOther" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeOther" xlink:to="us-gaap_InterestIncomeOther_lbl_15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeOther_lbl_15" xml:lang="en-US">[Interest Income, Other]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_82a46a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_82a46a" xml:lang="en-US">Pre-tax income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_16" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_16" xml:lang="en-US">[Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl_c04774" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl_c04774" xml:lang="en-US">Income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_23d7c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_23d7c4" xml:lang="en-US">Net income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLoss_lbl_18" xml:lang="en-US">[Net Income (Loss) Attributable to Parent]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl_22065d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasic_lbl_22065d" xml:lang="en-US">Earnings per common share - Basic</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl_86f350" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareDiluted_lbl_86f350" xml:lang="en-US">Earnings per common share - Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl_baa9c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl_baa9c6" xml:lang="en-US">Unaudited Consolidated Statements of Changes in Stockholders Equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl_abe7c7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementTable_lbl_abe7c7" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl_9d0ee7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementLineItems_lbl_9d0ee7" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl_010ba5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl_010ba5" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl_7da9e0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockMember_lbl_7da9e0" xml:lang="en-US">Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryCommonSharesMember" xlink:label="tssi_TreasuryCommonSharesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TreasuryCommonSharesMember" xlink:to="tssi_TreasuryCommonSharesMember_lbl_5da128" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_TreasuryCommonSharesMember_lbl_5da128" xml:lang="en-US">Treasury Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl_667c95" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl_667c95" xml:lang="en-US">Additional Paid-In Capital</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl_ce540e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsMember_lbl_ce540e" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_1bfa7c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharesIssued_lbl_1bfa7c" xml:lang="en-US">Balance, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssued" xlink:label="us-gaap_SharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharesIssued_lbl_2" xml:lang="en-US">[Shares, Issued]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_3c0b15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_StockholdersEquity_lbl_3c0b15" xml:lang="en-US">Balance, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl_894e02" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl_894e02" xml:lang="en-US">Restricted stock vested, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:label="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:to="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross_lbl_511eb3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross_lbl_511eb3" xml:lang="en-US">Restricted stock vested, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStockSharesAcquiredCostMethod" xlink:label="tssi_TreasuryStockSharesAcquiredCostMethod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TreasuryStockSharesAcquiredCostMethod" xlink:to="tssi_TreasuryStockSharesAcquiredCostMethod_lbl_35ad23" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_TreasuryStockSharesAcquiredCostMethod_lbl_35ad23" xml:lang="en-US">Treasury shares repurchased, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStockValuesAcquiredCostMethod" xlink:label="tssi_TreasuryStockValuesAcquiredCostMethod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TreasuryStockValuesAcquiredCostMethod" xlink:to="tssi_TreasuryStockValuesAcquiredCostMethod_lbl_99734f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_TreasuryStockValuesAcquiredCostMethod_lbl_99734f" xml:lang="en-US">Treasury shares repurchased, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl_900831" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl_900831" xml:lang="en-US">Stock-based compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_76db57" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_76db57" xml:lang="en-US">Net income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl_7dda22" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl_7dda22" xml:lang="en-US">Stock options exercised, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl_cb2cf7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl_cb2cf7" xml:lang="en-US">Stock options exercised, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockSharesRetired" xlink:label="us-gaap_TreasuryStockSharesRetired" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockSharesRetired" xlink:to="us-gaap_TreasuryStockSharesRetired_lbl_059e8e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockSharesRetired_lbl_059e8e" xml:lang="en-US">Treasury shares retired, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockRetiredCostMethodAmount" xlink:label="us-gaap_TreasuryStockRetiredCostMethodAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockRetiredCostMethodAmount" xlink:to="us-gaap_TreasuryStockRetiredCostMethodAmount_lbl_6017ef" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TreasuryStockRetiredCostMethodAmount_lbl_6017ef" xml:lang="en-US">Treasury shares retired, amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_3e1ead" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharesIssued_lbl_3e1ead" xml:lang="en-US">Balance, shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_c34abb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_StockholdersEquity_lbl_c34abb" xml:lang="en-US">Balance, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl_e28005" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl_e28005" xml:lang="en-US">Unaudited Consolidated Statements of Cash Flows</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl_25383b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl_25383b" xml:lang="en-US">Cash Flows from Operating Activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_d20eb6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_d20eb6" xml:lang="en-US">Net income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl_599a28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl_599a28" xml:lang="en-US">Adjustments to reconcile net income to net cash provided by (used in) operating activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl_6e1421" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DepreciationAndAmortization_lbl_6e1421" xml:lang="en-US">Depreciation and amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl_11b62f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensation_lbl_11b62f" xml:lang="en-US">Stock-based compensation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensation_lbl_6" xml:lang="en-US">[Share-Based Payment Arrangement, Noncash Expense]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForOtherCreditLosses" xlink:label="us-gaap_ProvisionForOtherCreditLosses" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForOtherCreditLosses" xlink:to="us-gaap_ProvisionForOtherCreditLosses_lbl_6fe2f4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProvisionForOtherCreditLosses_lbl_6fe2f4" xml:lang="en-US">Provision for inventory reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl_503dd9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl_503dd9" xml:lang="en-US">Amortization of debt issuance costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl_e193e6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl_e193e6" xml:lang="en-US">Changes in operating assets and liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInReceivables" xlink:to="us-gaap_IncreaseDecreaseInReceivables_lbl_714dd9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInReceivables_lbl_714dd9" xml:lang="en-US">Contract and other receivables</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="us-gaap_IncreaseDecreaseInReceivables" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInReceivables" xlink:to="us-gaap_IncreaseDecreaseInReceivables_lbl_10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInReceivables_lbl_10" xml:lang="en-US">[Increase (Decrease) in Receivables]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInUnbilledReceivables" xlink:to="us-gaap_IncreaseDecreaseInUnbilledReceivables_lbl_25e48c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInUnbilledReceivables_lbl_25e48c" xml:lang="en-US">Costs and estimated earnings in excess of billings on uncompleted contracts</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInUnbilledReceivables" xlink:label="us-gaap_IncreaseDecreaseInUnbilledReceivables" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInUnbilledReceivables" xlink:to="us-gaap_IncreaseDecreaseInUnbilledReceivables_lbl_11" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInUnbilledReceivables_lbl_11" xml:lang="en-US">[Increase (Decrease) in Unbilled Receivables]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl_b8a2e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl_b8a2e7" xml:lang="en-US">Inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl_12" xml:lang="en-US">[Increase (Decrease) in Inventories]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl_9717f3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl_9717f3" xml:lang="en-US">Prepaid expenses and other assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl_13" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl_13" xml:lang="en-US">[Increase (Decrease) in Prepaid Expense and Other Assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_IncreaseDecreaseInRightOfUseAsset" xlink:to="tssi_IncreaseDecreaseInRightOfUseAsset_lbl_e349cb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="tssi_IncreaseDecreaseInRightOfUseAsset_lbl_e349cb" xml:lang="en-US">Right-of-use assets</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_IncreaseDecreaseInRightOfUseAsset" xlink:label="tssi_IncreaseDecreaseInRightOfUseAsset" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_IncreaseDecreaseInRightOfUseAsset" xlink:to="tssi_IncreaseDecreaseInRightOfUseAsset_lbl_14" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_IncreaseDecreaseInRightOfUseAsset_lbl_14" xml:lang="en-US">[Right-of-use assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl_13834e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl_13834e" xml:lang="en-US">Accounts payable and accrued expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl_15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl_15" xml:lang="en-US">[Increase (Decrease) in Accounts Payable and Accrued Liabilities]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl_1dabe8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl_1dabe8" xml:lang="en-US">Deferred revenues</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:to="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl_073dc9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl_073dc9" xml:lang="en-US">Operating lease liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_c1e9db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_c1e9db" xml:lang="en-US">Net cash provided by (used in) operating activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_18" xml:lang="en-US">[Cash Provided by (Used in) Operating Activity, Including Discontinued Operation]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl_3c8677" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl_3c8677" xml:lang="en-US">Cash Flows from Investing Activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireProductiveAssets" xlink:to="us-gaap_PaymentsToAcquireProductiveAssets_lbl_921b2e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets_lbl_921b2e" xml:lang="en-US">Capital expenditures</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireProductiveAssets" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireProductiveAssets" xlink:to="us-gaap_PaymentsToAcquireProductiveAssets_lbl_20" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets_lbl_20" xml:lang="en-US">[Payments to Acquire Productive Assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_79e643" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_79e643" xml:lang="en-US">Net cash used in investing activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_21" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_21" xml:lang="en-US">[Cash Provided by (Used in) Investing Activity, Including Discontinued Operation]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl_8402cf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl_8402cf" xml:lang="en-US">Cash Flows from Financing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt" xlink:to="us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt_lbl_d76714" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt_lbl_d76714" xml:lang="en-US">Proceeds from issuance of long-term debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl_0446e6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl_0446e6" xml:lang="en-US">Proceeds from exercise of stock options</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl_008b12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl_008b12" xml:lang="en-US">Repurchase of treasury stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl_25" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl_25" xml:lang="en-US">[Payments for Repurchase of Common Stock]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_2f7d33" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_2f7d33" xml:lang="en-US">Net cash provided by (used in) financing activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_26" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_26" xml:lang="en-US">[Cash Provided by (Used in) Financing Activity, Including Discontinued Operation]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_533636" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_533636" xml:lang="en-US">Net increase (decrease) in cash, cash equivalents and restricted cash</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_27" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_27" xml:lang="en-US">[Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Excluding Exchange Rate Effect, Including Discontinued Operation]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_6940ce" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_6940ce" xml:lang="en-US">Cash, cash equivalents and restricted cash, beginning of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_468b67" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_468b67" xml:lang="en-US">Cash, cash equivalents and restricted cash, end of period</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl_f8949f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl_f8949f" xml:lang="en-US">Supplemental disclosures of cash flow information:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl_49810a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestPaidNet_lbl_49810a" xml:lang="en-US">Cash paid for interest, net of amounts capitalized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet_lbl_f53c83" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl_f53c83" xml:lang="en-US">Cash paid for taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashAndCashEquivalentsBeginningOfPeriod" xlink:label="tssi_CashAndCashEquivalentsBeginningOfPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CashAndCashEquivalentsBeginningOfPeriod" xlink:to="tssi_CashAndCashEquivalentsBeginningOfPeriod_lbl_e579d2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CashAndCashEquivalentsBeginningOfPeriod_lbl_e579d2" xml:lang="en-US">Cash and cash equivalents, beginning of period</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RestrictedCashBeginningOfPeriod" xlink:label="tssi_RestrictedCashBeginningOfPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_RestrictedCashBeginningOfPeriod" xlink:to="tssi_RestrictedCashBeginningOfPeriod_lbl_df9e7b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_RestrictedCashBeginningOfPeriod_lbl_df9e7b" xml:lang="en-US">Restricted cash, beginning of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" xlink:to="tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods_lbl_910e38" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods_lbl_910e38" xml:lang="en-US">Cash, cash equivalents and restricted cash, beginning of periods</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" xlink:label="tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" xlink:to="tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods_lbl_35" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods_lbl_35" xml:lang="en-US">[Cash, cash equivalents and restricted cash, beginning of periods]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashAndCashEquivalentsEndOfPeriod" xlink:label="tssi_CashAndCashEquivalentsEndOfPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CashAndCashEquivalentsEndOfPeriod" xlink:to="tssi_CashAndCashEquivalentsEndOfPeriod_lbl_0f3416" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CashAndCashEquivalentsEndOfPeriod_lbl_0f3416" xml:lang="en-US">Cash and cash equivalents, end of period</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RestrictedCashEndOfPeriod" xlink:label="tssi_RestrictedCashEndOfPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_RestrictedCashEndOfPeriod" xlink:to="tssi_RestrictedCashEndOfPeriod_lbl_43edb6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_RestrictedCashEndOfPeriod_lbl_43edb6" xml:lang="en-US">Restricted cash, end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods" xlink:to="tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods_lbl_bd7815" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods_lbl_bd7815" xml:lang="en-US">Cash, cash equivalents and restricted cash, end of periods</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods" xlink:label="tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods" xlink:to="tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods_lbl_38" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods_lbl_38" xml:lang="en-US">[Cash, cash equivalents and restricted cash, end of periods]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl_f48626" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl_f48626" xml:lang="en-US">Supplemental non-cash investing activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable" xlink:label="tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable" xlink:to="tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable_lbl_b50530" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable_lbl_b50530" xml:lang="en-US">Additions to capital expenditures financed with accounts payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_InsiderTradingArrLineItems" xlink:label="ecd_InsiderTradingArrLineItems" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_InsiderTradingArrLineItems" xlink:to="ecd_InsiderTradingArrLineItems_lbl_b09073" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_InsiderTradingArrLineItems_lbl_b09073" xml:lang="en-US">Insider Trading Arragements [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_Rule10b51ArrAdoptedFlag" xlink:label="ecd_Rule10b51ArrAdoptedFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_Rule10b51ArrAdoptedFlag" xlink:to="ecd_Rule10b51ArrAdoptedFlag_lbl_f11342" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_Rule10b51ArrAdoptedFlag_lbl_f11342" xml:lang="en-US">Rule 10b5-1 Arragement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_Rule10b51ArrTrmntdFlag" xlink:label="ecd_Rule10b51ArrTrmntdFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_Rule10b51ArrTrmntdFlag" xlink:to="ecd_Rule10b51ArrTrmntdFlag_lbl_ed3ef5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_Rule10b51ArrTrmntdFlag_lbl_ed3ef5" xml:lang="en-US">Rule 10b5-1 Arragement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_NonRule10b51ArrAdoptedFlag" xlink:label="ecd_NonRule10b51ArrAdoptedFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_NonRule10b51ArrAdoptedFlag" xlink:to="ecd_NonRule10b51ArrAdoptedFlag_lbl_8d1372" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_NonRule10b51ArrAdoptedFlag_lbl_8d1372" xml:lang="en-US">Non Rule 10b5-1 Arragement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_NonRule10b51ArrTrmntdFlag" xlink:label="ecd_NonRule10b51ArrTrmntdFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_NonRule10b51ArrTrmntdFlag" xlink:to="ecd_NonRule10b51ArrTrmntdFlag_lbl_264cbe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_NonRule10b51ArrTrmntdFlag_lbl_264cbe" xml:lang="en-US">Non Rule 10b5-1 Arragement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="tssi_SignificantAccountingPoliciesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_SignificantAccountingPoliciesAbstract" xlink:to="tssi_SignificantAccountingPoliciesAbstract_lbl_e28b1d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_SignificantAccountingPoliciesAbstract_lbl_e28b1d" xml:lang="en-US">Significant Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_3c6c9b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_3c6c9b" xml:lang="en-US">Significant Accounting Policies</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_2" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="tssi_SupplementalBalanceSheetInformationAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_SupplementalBalanceSheetInformationAbstract" xlink:to="tssi_SupplementalBalanceSheetInformationAbstract_lbl_8b3aac" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_SupplementalBalanceSheetInformationAbstract_lbl_8b3aac" xml:lang="en-US">Supplemental Balance Sheet Information</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl_036098" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl_036098" xml:lang="en-US">Supplemental Balance Sheet Information</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl_2" xml:lang="en-US">Supplemental Balance Sheet Disclosures [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtAbstract" xlink:label="us-gaap_LongTermDebtAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtAbstract" xlink:to="us-gaap_LongTermDebtAbstract_lbl_85e810" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtAbstract_lbl_85e810" xml:lang="en-US">Long Term Debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtTextBlock" xlink:label="us-gaap_LongTermDebtTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtTextBlock" xlink:to="us-gaap_LongTermDebtTextBlock_lbl_ba09af" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtTextBlock_lbl_ba09af" xml:lang="en-US">Long-Term Debt</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeasingArrangementsAbstract" xlink:label="tssi_LeasingArrangementsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_LeasingArrangementsAbstract" xlink:to="tssi_LeasingArrangementsAbstract_lbl_3ffe58" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_LeasingArrangementsAbstract_lbl_3ffe58" xml:lang="en-US">Leasing Arrangements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:to="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_c8ec17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_c8ec17" xml:lang="en-US">Leasing Arrangements</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:to="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_2" xml:lang="en-US">Leases of Lessee Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl_d6b481" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareAbstract_lbl_d6b481" xml:lang="en-US">Earnings Per-Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl_5fb675" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl_5fb675" xml:lang="en-US">Net Income Per-Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl_6c7e65" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingAbstract_lbl_6c7e65" xml:lang="en-US">Segment Reporting</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl_a700d3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl_a700d3" xml:lang="en-US">Segment Reporting</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl_2" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl_e7eb98" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsAbstract_lbl_e7eb98" xml:lang="en-US">Subsequent Events</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl_246a2a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl_246a2a" xml:lang="en-US">Subsequent Events</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl_2" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl_723d5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl_723d5d" xml:lang="en-US">Basis of Presentation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl_5a6a82" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl_5a6a82" xml:lang="en-US">Principles of Consolidation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl_bf063d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl_bf063d" xml:lang="en-US">Financial Instruments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy_lbl_87ab6a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl_87ab6a" xml:lang="en-US">Accounting for Business Combinations</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:to="us-gaap_RevenueRecognitionPolicyTextBlock_lbl_81e1f3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock_lbl_81e1f3" xml:lang="en-US">Revenue Recognition</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_MaintenanceServicesPolicyTextBlock" xlink:label="tssi_MaintenanceServicesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_MaintenanceServicesPolicyTextBlock" xlink:to="tssi_MaintenanceServicesPolicyTextBlock_lbl_358758" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_MaintenanceServicesPolicyTextBlock_lbl_358758" xml:lang="en-US">Maintenance services</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_IntegrationServicesPolicyTextBlock" xlink:label="tssi_IntegrationServicesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_IntegrationServicesPolicyTextBlock" xlink:to="tssi_IntegrationServicesPolicyTextBlock_lbl_772506" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_IntegrationServicesPolicyTextBlock_lbl_772506" xml:lang="en-US">Integration services</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_EquipmentAndMaterialSalesPolicyTextBlock" xlink:label="tssi_EquipmentAndMaterialSalesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_EquipmentAndMaterialSalesPolicyTextBlock" xlink:to="tssi_EquipmentAndMaterialSalesPolicyTextBlock_lbl_278afa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_EquipmentAndMaterialSalesPolicyTextBlock_lbl_278afa" xml:lang="en-US">Equipment and Material sales</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DeploymentAndOtherServicesPolicyTextBlock" xlink:label="tssi_DeploymentAndOtherServicesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_DeploymentAndOtherServicesPolicyTextBlock" xlink:to="tssi_DeploymentAndOtherServicesPolicyTextBlock_lbl_68306b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_DeploymentAndOtherServicesPolicyTextBlock_lbl_68306b" xml:lang="en-US">Deployment and Other services</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementServicesPolicyTextBlock" xlink:label="tssi_ProcurementServicesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ProcurementServicesPolicyTextBlock" xlink:to="tssi_ProcurementServicesPolicyTextBlock_lbl_bb633c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ProcurementServicesPolicyTextBlock_lbl_bb633c" xml:lang="en-US">Procurement services</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_JudgmentsPolicyTextBlock" xlink:label="tssi_JudgmentsPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_JudgmentsPolicyTextBlock" xlink:to="tssi_JudgmentsPolicyTextBlock_lbl_4f8c11" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_JudgmentsPolicyTextBlock_lbl_4f8c11" xml:lang="en-US">Judgments</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SalesTaxesPolicyTextBlock" xlink:label="tssi_SalesTaxesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_SalesTaxesPolicyTextBlock" xlink:to="tssi_SalesTaxesPolicyTextBlock_lbl_9e445b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_SalesTaxesPolicyTextBlock_lbl_9e445b" xml:lang="en-US">Sales taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShippingAndHandlingCostPolicyTextBlock" xlink:label="us-gaap_ShippingAndHandlingCostPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShippingAndHandlingCostPolicyTextBlock" xlink:to="us-gaap_ShippingAndHandlingCostPolicyTextBlock_lbl_844f99" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShippingAndHandlingCostPolicyTextBlock_lbl_844f99" xml:lang="en-US">Shipping and handling costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRecognitionDeferredRevenue" xlink:label="us-gaap_RevenueRecognitionDeferredRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRecognitionDeferredRevenue" xlink:to="us-gaap_RevenueRecognitionDeferredRevenue_lbl_fa4b03" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRecognitionDeferredRevenue_lbl_fa4b03" xml:lang="en-US">Deferred Revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk_lbl_f7ff2c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl_f7ff2c" xml:lang="en-US">Concentration of Credit Risk</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_NonRecourseFactoringPolicyTextBlock" xlink:label="tssi_NonRecourseFactoringPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_NonRecourseFactoringPolicyTextBlock" xlink:to="tssi_NonRecourseFactoringPolicyTextBlock_lbl_23d452" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_NonRecourseFactoringPolicyTextBlock_lbl_23d452" xml:lang="en-US">Non-recourse factoring</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_1bd4c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_1bd4c0" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_1ce6df" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_1ce6df" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_19" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:label="us-gaap_TradeAndOtherAccountsReceivablePolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:to="us-gaap_TradeAndOtherAccountsReceivablePolicy_lbl_181cf0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TradeAndOtherAccountsReceivablePolicy_lbl_181cf0" xml:lang="en-US">Contract and Other Receivables</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:to="tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl_25f68c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl_25f68c" xml:lang="en-US">Allowance for Credit Losses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl_9f30e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl_9f30e7" xml:lang="en-US">Inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl_22" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl_22" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl_72aee9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl_72aee9" xml:lang="en-US">Property and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl_27bcac" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl_27bcac" xml:lang="en-US">Goodwill and Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl_38e671" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl_38e671" xml:lang="en-US">Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_lbl_310c84" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl_310c84" xml:lang="en-US">Earnings Per-Common Share</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TreasuryStockPolicyTextBlock" xlink:to="tssi_TreasuryStockPolicyTextBlock_lbl_e4dfd2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tssi_TreasuryStockPolicyTextBlock_lbl_e4dfd2" xml:lang="en-US">Treasury Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStockPolicyTextBlock" xlink:label="tssi_TreasuryStockPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TreasuryStockPolicyTextBlock" xlink:to="tssi_TreasuryStockPolicyTextBlock_lbl_27" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_TreasuryStockPolicyTextBlock_lbl_27" xml:lang="en-US">[Treasury Stock]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesPolicyTextBlock_lbl_da4a2e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesPolicyTextBlock_lbl_da4a2e" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl_2ece91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl_2ece91" xml:lang="en-US">Recent Accounting Guidance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl_d75d59" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl_d75d59" xml:lang="en-US">Disaggregation of revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock" xlink:label="tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock" xlink:to="tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock_lbl_aab39b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock_lbl_aab39b" xml:lang="en-US">Schedule of information of non recourse factoring program</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl_729b3b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl_729b3b" xml:lang="en-US">Schedule of concentration risk on revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl_e241ff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl_e241ff" xml:lang="en-US">Allowance for doubtful accounts</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl_ba2235" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl_ba2235" xml:lang="en-US">Schedule of contract and other receivables</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_efa55d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_efa55d" xml:lang="en-US">Schedule of inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:to="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl_023996" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl_023996" xml:lang="en-US">Schedule of goodwill and intangible assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_b9e388" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_b9e388" xml:lang="en-US">Schedule of property and equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfOtherAssetsTableTextBlock_lbl_8299e8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfOtherAssetsTableTextBlock_lbl_8299e8" xml:lang="en-US">Schedule of other assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl_17474a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl_17474a" xml:lang="en-US">Schedule of accounts payable and accrued expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDebtTableTextBlock" xlink:to="us-gaap_ScheduleOfDebtTableTextBlock_lbl_51a7a9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock_lbl_51a7a9" xml:lang="en-US">Schedule of long term debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock_lbl_938237" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl_938237" xml:lang="en-US">Schedule of lease expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ScheduleOfOperatingLeaseInformationTableTextBlock" xlink:label="tssi_ScheduleOfOperatingLeaseInformationTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ScheduleOfOperatingLeaseInformationTableTextBlock" xlink:to="tssi_ScheduleOfOperatingLeaseInformationTableTextBlock_lbl_405479" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ScheduleOfOperatingLeaseInformationTableTextBlock_lbl_405479" xml:lang="en-US">Schedule of operating lease information</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:to="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_lbl_744f9e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_lbl_744f9e" xml:lang="en-US">Schedule of future minimum lease payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl_744754" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl_744754" xml:lang="en-US">Schedule of earnings per share diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl_64aa59" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl_64aa59" xml:lang="en-US">Schedule of segment information</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis_lbl_6413b0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ProductOrServiceAxis_lbl_6413b0" xml:lang="en-US">Product Or Service Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_StatementBusinessSegmentsAxis_lbl_53672b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementBusinessSegmentsAxis_lbl_53672b" xml:lang="en-US">Statement Business Segments Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MaintenanceMember" xlink:label="us-gaap_MaintenanceMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MaintenanceMember" xlink:to="us-gaap_MaintenanceMember_lbl_cfe777" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MaintenanceMember_lbl_cfe777" xml:lang="en-US">Maintenance [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FacilitiesSegmentMember" xlink:label="tssi_FacilitiesSegmentMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_FacilitiesSegmentMember" xlink:to="tssi_FacilitiesSegmentMember_lbl_508bba" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_FacilitiesSegmentMember_lbl_508bba" xml:lang="en-US">Facilities Segment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_IntegrationServicesMember" xlink:label="tssi_IntegrationServicesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_IntegrationServicesMember" xlink:to="tssi_IntegrationServicesMember_lbl_02e74a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_IntegrationServicesMember_lbl_02e74a" xml:lang="en-US">Integration Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SystemIntegrationServicesSegmentMember" xlink:label="tssi_SystemIntegrationServicesSegmentMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_SystemIntegrationServicesSegmentMember" xlink:to="tssi_SystemIntegrationServicesSegmentMember_lbl_ff6580" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_SystemIntegrationServicesSegmentMember_lbl_ff6580" xml:lang="en-US">System Integration Services Segment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementServicesMember" xlink:label="tssi_ProcurementServicesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ProcurementServicesMember" xlink:to="tssi_ProcurementServicesMember_lbl_eccdc9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ProcurementServicesMember_lbl_eccdc9" xml:lang="en-US">Procurement Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementRevenuesSegmentMember" xlink:label="tssi_ProcurementRevenuesSegmentMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ProcurementRevenuesSegmentMember" xlink:to="tssi_ProcurementRevenuesSegmentMember_lbl_57a41d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ProcurementRevenuesSegmentMember_lbl_57a41d" xml:lang="en-US">Procurement Revenues Segment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_EquipmentDeploymentAndOtherServicesMember" xlink:label="tssi_EquipmentDeploymentAndOtherServicesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_EquipmentDeploymentAndOtherServicesMember" xlink:to="tssi_EquipmentDeploymentAndOtherServicesMember_lbl_2e2643" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_EquipmentDeploymentAndOtherServicesMember_lbl_2e2643" xml:lang="en-US">Equipment Deployment and Other Services [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl_2ee0b8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl_2ee0b8" xml:lang="en-US">Total revenues</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl_2" xml:lang="en-US">[Revenue from Contract with Customer, Excluding Assessed Tax]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl_f872d8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MajorCustomersAxis_lbl_f872d8" xml:lang="en-US">Major Customers Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl_adc97f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl_adc97f" xml:lang="en-US">Concentration Risk By Benchmark Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_USBasedITOEMCompanyMember" xlink:label="tssi_USBasedITOEMCompanyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_USBasedITOEMCompanyMember" xlink:to="tssi_USBasedITOEMCompanyMember_lbl_85b38b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_USBasedITOEMCompanyMember_lbl_85b38b" xml:lang="en-US">US-based IT OEM Company [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenuesMember" xlink:label="tssi_RevenuesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_RevenuesMember" xlink:to="tssi_RevenuesMember_lbl_3d03ee" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_RevenuesMember_lbl_3d03ee" xml:lang="en-US">Revenues [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConcentrationRiskPercentages" xlink:label="tssi_ConcentrationRiskPercentages" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ConcentrationRiskPercentages" xlink:to="tssi_ConcentrationRiskPercentages_lbl_29227d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ConcentrationRiskPercentages_lbl_29227d" xml:lang="en-US">Concentration percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_AggregateGrossAmountFactored" xlink:label="tssi_AggregateGrossAmountFactored" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_AggregateGrossAmountFactored" xlink:to="tssi_AggregateGrossAmountFactored_lbl_c39362" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_AggregateGrossAmountFactored_lbl_c39362" xml:lang="en-US">Aggregate gross amount factored</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsOfFinancingCosts" xlink:to="us-gaap_PaymentsOfFinancingCosts_lbl_fe5404" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsOfFinancingCosts_lbl_fe5404" xml:lang="en-US">Financing fees paid</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_6b2f67" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_6b2f67" xml:lang="en-US">Balance at beginning of year</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_2" xml:lang="en-US">[Accounts Receivable, Allowance for Credit Loss]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_lbl_d1254d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_lbl_d1254d" xml:lang="en-US">Additions charged to expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RecoveryOfAmountsPreviouslyReserved" xlink:label="tssi_RecoveryOfAmountsPreviouslyReserved" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_RecoveryOfAmountsPreviouslyReserved" xlink:to="tssi_RecoveryOfAmountsPreviouslyReserved_lbl_71873c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_RecoveryOfAmountsPreviouslyReserved_lbl_71873c" xml:lang="en-US">Recovery of amounts previously reserved</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_AmountsWrittenOff" xlink:label="tssi_AmountsWrittenOff" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_AmountsWrittenOff" xlink:to="tssi_AmountsWrittenOff_lbl_d80309" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_AmountsWrittenOff_lbl_d80309" xml:lang="en-US">Amounts written off</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_d2a160" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_d2a160" xml:lang="en-US">Balance at end of year</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableMember" xlink:to="us-gaap_AccountsReceivableMember_lbl_c1b1b1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableMember_lbl_c1b1b1" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_MaintenanceContractsObligationsMember" xlink:label="tssi_MaintenanceContractsObligationsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_MaintenanceContractsObligationsMember" xlink:to="tssi_MaintenanceContractsObligationsMember_lbl_53ec4a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_MaintenanceContractsObligationsMember_lbl_53ec4a" xml:lang="en-US">Maintenance Contracts Obligations [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementAndIntegrationServicesMember" xlink:label="tssi_ProcurementAndIntegrationServicesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ProcurementAndIntegrationServicesMember" xlink:to="tssi_ProcurementAndIntegrationServicesMember_lbl_cf5547" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ProcurementAndIntegrationServicesMember_lbl_cf5547" xml:lang="en-US">Procurement and Integration Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_UnrestrictedCashBalance" xlink:label="tssi_UnrestrictedCashBalance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_UnrestrictedCashBalance" xlink:to="tssi_UnrestrictedCashBalance_lbl_45b043" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_UnrestrictedCashBalance_lbl_45b043" xml:lang="en-US">Unrestricted cash</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_AllowanceForDoubtfulAccounts" xlink:label="tssi_AllowanceForDoubtfulAccounts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_AllowanceForDoubtfulAccounts" xlink:to="tssi_AllowanceForDoubtfulAccounts_lbl_439688" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_AllowanceForDoubtfulAccounts_lbl_439688" xml:lang="en-US">Allowance for credit losses</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashDepositInAMoneyMarketAccount" xlink:label="tssi_CashDepositInAMoneyMarketAccount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CashDepositInAMoneyMarketAccount" xlink:to="tssi_CashDepositInAMoneyMarketAccount_lbl_beef75" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CashDepositInAMoneyMarketAccount_lbl_beef75" xml:lang="en-US">Cash deposit in a money market</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConcentrationRiskPercentageOne" xlink:label="tssi_ConcentrationRiskPercentageOne" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ConcentrationRiskPercentageOne" xlink:to="tssi_ConcentrationRiskPercentageOne_lbl_de2cbc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ConcentrationRiskPercentageOne_lbl_de2cbc" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_lbl_144f55" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiability_lbl_144f55" xml:lang="en-US">Contract with customer liability</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNoncashExpense" xlink:label="us-gaap_OtherNoncashExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncashExpense" xlink:to="us-gaap_OtherNoncashExpense_lbl_25204f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherNoncashExpense_lbl_25204f" xml:lang="en-US">Non-cash compensation expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_Goodwills" xlink:label="tssi_Goodwills" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_Goodwills" xlink:to="tssi_Goodwills_lbl_ce2233" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_Goodwills_lbl_ce2233" xml:lang="en-US">Carrying value of goodwill</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenue" xlink:label="us-gaap_DeferredRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenue" xlink:to="us-gaap_DeferredRevenue_lbl_bdc665" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenue_lbl_bdc665" xml:lang="en-US">Deferred revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DeferredRevenueRelatedToProcurementServices" xlink:label="tssi_DeferredRevenueRelatedToProcurementServices" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_DeferredRevenueRelatedToProcurementServices" xlink:to="tssi_DeferredRevenueRelatedToProcurementServices_lbl_9fc085" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_DeferredRevenueRelatedToProcurementServices_lbl_9fc085" xml:lang="en-US">Deferred revenue related to procurement services</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DeferredRevenueRelatedToIntegrationServices" xlink:label="tssi_DeferredRevenueRelatedToIntegrationServices" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_DeferredRevenueRelatedToIntegrationServices" xlink:to="tssi_DeferredRevenueRelatedToIntegrationServices_lbl_bdfefd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_DeferredRevenueRelatedToIntegrationServices_lbl_bdfefd" xml:lang="en-US">Deferred revenue related to integration services</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableGrossCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_lbl_4c32f2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsReceivableGrossCurrent_lbl_4c32f2" xml:lang="en-US">Contract and other receivables</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableGrossCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableGrossCurrent_lbl_2" xml:lang="en-US">[Accounts Receivable, before Allowance for Credit Loss, Current]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl_bbbeec" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl_bbbeec" xml:lang="en-US">Allowance for doubtful accounts</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl_3" xml:lang="en-US">[Accounts Receivable, Allowance for Credit Loss, Current]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesNetCurrent" xlink:to="us-gaap_ReceivablesNetCurrent_lbl_2063bb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ReceivablesNetCurrent_lbl_2063bb" xml:lang="en-US">Contracts and other receivables, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryRawMaterialsAndSupplies" xlink:label="us-gaap_InventoryRawMaterialsAndSupplies" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterialsAndSupplies" xlink:to="us-gaap_InventoryRawMaterialsAndSupplies_lbl_e15c31" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryRawMaterialsAndSupplies_lbl_e15c31" xml:lang="en-US">Raw Materials</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryWorkInProcess" xlink:label="us-gaap_InventoryWorkInProcess" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryWorkInProcess" xlink:to="us-gaap_InventoryWorkInProcess_lbl_12c849" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryWorkInProcess_lbl_12c849" xml:lang="en-US">Work in Process</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryFinishedGoods" xlink:label="us-gaap_InventoryFinishedGoods" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoods" xlink:to="us-gaap_InventoryFinishedGoods_lbl_4033ed" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryFinishedGoods_lbl_4033ed" xml:lang="en-US">Finished Goods</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves_lbl_8e9749" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InventoryValuationReserves_lbl_8e9749" xml:lang="en-US">Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryValuationReserves_lbl_5" xml:lang="en-US">[Inventory Valuation Reserves]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl_d90fdd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryNet_lbl_d90fdd" xml:lang="en-US">Inventories, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueByAssetClassAxis_lbl_3097aa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByAssetClassAxis_lbl_3097aa" xml:lang="en-US">Fair Value By Asset Class Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl_ea5dc0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl_ea5dc0" xml:lang="en-US">Finite Lived Intangible Assets By Major Class Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillMember" xlink:label="us-gaap_GoodwillMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillMember" xlink:to="us-gaap_GoodwillMember_lbl_02b8ed" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillMember_lbl_02b8ed" xml:lang="en-US">Goodwill [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember_lbl_c6a791" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CustomerRelationshipsMember_lbl_c6a791" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:label="us-gaap_ComputerSoftwareIntangibleAssetMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:to="us-gaap_ComputerSoftwareIntangibleAssetMember_lbl_5da19c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComputerSoftwareIntangibleAssetMember_lbl_5da19c" xml:lang="en-US">Computer Software, Intangible Asset [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl_9b25eb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl_9b25eb" xml:lang="en-US">Gross carrying amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_271660" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_271660" xml:lang="en-US">Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_3" xml:lang="en-US">[Finite-Lived Intangible Assets, Accumulated Amortization]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_FacilitiesSegmentMember" xlink:to="tssi_FacilitiesSegmentMember_lbl_a3c269" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tssi_FacilitiesSegmentMember_lbl_a3c269" xml:lang="en-US">Facilities Segment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_SystemIntegrationServicesSegmentMember" xlink:to="tssi_SystemIntegrationServicesSegmentMember_lbl_051b6b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tssi_SystemIntegrationServicesSegmentMember_lbl_051b6b" xml:lang="en-US">System Integration Services Segment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillGross" xlink:to="us-gaap_GoodwillGross_lbl_f85ffe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_GoodwillGross_lbl_f85ffe" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillGross" xlink:label="us-gaap_GoodwillGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillGross" xlink:to="us-gaap_GoodwillGross_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillGross_lbl_2" xml:lang="en-US">[Goodwill, Gross]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl_7a2858" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameAxis_lbl_7a2858" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl_0ca28a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl_0ca28a" xml:lang="en-US">Long-Lived Tangible Asset [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_BottomMember" xlink:label="tssi_BottomMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_BottomMember" xlink:to="tssi_BottomMember_lbl_601e81" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_BottomMember_lbl_601e81" xml:lang="en-US">Bottom [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseholdImprovementsMember" xlink:to="us-gaap_LeaseholdImprovementsMember_lbl_dda950" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseholdImprovementsMember_lbl_dda950" xml:lang="en-US">Leasehold improvements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TopMember" xlink:label="tssi_TopMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TopMember" xlink:to="tssi_TopMember_lbl_c8765c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_TopMember_lbl_c8765c" xml:lang="en-US">Top [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ComputerEquipmentAndSoftwareMember" xlink:label="tssi_ComputerEquipmentAndSoftwareMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ComputerEquipmentAndSoftwareMember" xlink:to="tssi_ComputerEquipmentAndSoftwareMember_lbl_6cbf75" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ComputerEquipmentAndSoftwareMember_lbl_6cbf75" xml:lang="en-US">Computer equipment and software [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TradeEquipmentMember" xlink:label="tssi_TradeEquipmentMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TradeEquipmentMember" xlink:to="tssi_TradeEquipmentMember_lbl_1b024f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_TradeEquipmentMember_lbl_1b024f" xml:lang="en-US">Trade Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FurnitureAndFixtureMember" xlink:label="tssi_FurnitureAndFixtureMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_FurnitureAndFixtureMember" xlink:to="tssi_FurnitureAndFixtureMember_lbl_a32685" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_FurnitureAndFixtureMember_lbl_a32685" xml:lang="en-US">Furniture And Fixture [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConstructionInProcessMember" xlink:label="tssi_ConstructionInProcessMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ConstructionInProcessMember" xlink:to="tssi_ConstructionInProcessMember_lbl_2df89a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ConstructionInProcessMember_lbl_2df89a" xml:lang="en-US">Construction in process [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FurnitureAndFixturesMember" xlink:to="us-gaap_FurnitureAndFixturesMember_lbl_687b10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FurnitureAndFixturesMember_lbl_687b10" xml:lang="en-US">Furniture and fixtures [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl_123ef7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl_123ef7" xml:lang="en-US">Property and equipment, gross</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_98d391" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_98d391" xml:lang="en-US">Less accumulated depreciation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_3" xml:lang="en-US">[Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl_17a83f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl_17a83f" xml:lang="en-US">Property and equipment, net</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_PropertyPlantAndEquipmentEstimatedUsefulLife" xlink:label="tssi_PropertyPlantAndEquipmentEstimatedUsefulLife" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_PropertyPlantAndEquipmentEstimatedUsefulLife" xlink:to="tssi_PropertyPlantAndEquipmentEstimatedUsefulLife_lbl_b7fea6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_PropertyPlantAndEquipmentEstimatedUsefulLife_lbl_b7fea6" xml:lang="en-US">Useful life (Year)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestCostsCapitalized" xlink:label="us-gaap_InterestCostsCapitalized" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestCostsCapitalized" xlink:to="us-gaap_InterestCostsCapitalized_lbl_7352a1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestCostsCapitalized_lbl_7352a1" xml:lang="en-US">CapitalizedInterest</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepositsAssets" xlink:label="us-gaap_DepositsAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepositsAssets" xlink:to="us-gaap_DepositsAssets_lbl_bbdfb0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepositsAssets_lbl_bbdfb0" xml:lang="en-US">Deposits</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OtherNonCurrentAssetsNet" xlink:label="tssi_OtherNonCurrentAssetsNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_OtherNonCurrentAssetsNet" xlink:to="tssi_OtherNonCurrentAssetsNet_lbl_8753f9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_OtherNonCurrentAssetsNet_lbl_8753f9" xml:lang="en-US">Other non-current assets, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl_212a38" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl_212a38" xml:lang="en-US">Balance at end of year</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl_eedff7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableCurrent_lbl_eedff7" xml:lang="en-US">Accounts payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent_lbl_e5ec79" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl_e5ec79" xml:lang="en-US">Accrued expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl_dd81de" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl_dd81de" xml:lang="en-US">Compensation, benefits and related taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_lbl_076b91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl_076b91" xml:lang="en-US">Other accrued expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent_lbl_91d721" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent_lbl_91d721" xml:lang="en-US">Total accounts payable and accrued expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements" xlink:label="us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements" xlink:to="us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements_lbl_e71032" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements_lbl_e71032" xml:lang="en-US">Borrowed funds (bank loan; see Note 3)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedAmortizationDeferredFinanceCosts" xlink:to="us-gaap_AccumulatedAmortizationDeferredFinanceCosts_lbl_5e4e41" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AccumulatedAmortizationDeferredFinanceCosts_lbl_5e4e41" xml:lang="en-US">Deferred debt issuance costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedAmortizationDeferredFinanceCosts" xlink:label="us-gaap_AccumulatedAmortizationDeferredFinanceCosts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedAmortizationDeferredFinanceCosts" xlink:to="us-gaap_AccumulatedAmortizationDeferredFinanceCosts_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedAmortizationDeferredFinanceCosts_lbl_3" xml:lang="en-US">[Accumulated Amortization, Debt Issuance Costs]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtNoncurrent" xlink:to="us-gaap_LongTermDebtNoncurrent_lbl_0cb570" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl_0cb570" xml:lang="en-US">Long-term debt, non-current</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ContractAssetsIncludesAccountsReceivable" xlink:label="tssi_ContractAssetsIncludesAccountsReceivable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ContractAssetsIncludesAccountsReceivable" xlink:to="tssi_ContractAssetsIncludesAccountsReceivable_lbl_31ff28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ContractAssetsIncludesAccountsReceivable_lbl_31ff28" xml:lang="en-US">Contract assets, accounts receivable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherDepreciationAndAmortization" xlink:label="us-gaap_OtherDepreciationAndAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherDepreciationAndAmortization" xlink:to="us-gaap_OtherDepreciationAndAmortization_lbl_2ccc91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherDepreciationAndAmortization_lbl_2ccc91" xml:lang="en-US">Depreciation and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl_ba22fa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl_ba22fa" xml:lang="en-US">Deferred financing cost</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis_lbl_16e5ba" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CreditFacilityAxis_lbl_16e5ba" xml:lang="en-US">Credit Facility Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CreditAgreementMember" xlink:label="tssi_CreditAgreementMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CreditAgreementMember" xlink:to="tssi_CreditAgreementMember_lbl_1b27d4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CreditAgreementMember_lbl_1b27d4" xml:lang="en-US">Credit Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="us-gaap_ProceedsFromOtherDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromOtherDebt" xlink:to="us-gaap_ProceedsFromOtherDebt_lbl_aff14a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromOtherDebt_lbl_aff14a" xml:lang="en-US">Proceeds from borrowings</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfOtherLongTermDebt" xlink:label="us-gaap_RepaymentsOfOtherLongTermDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfOtherLongTermDebt" xlink:to="us-gaap_RepaymentsOfOtherLongTermDebt_lbl_7c3ef4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RepaymentsOfOtherLongTermDebt_lbl_7c3ef4" xml:lang="en-US">Long-term debt, excluding current portion</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfOtherDebt" xlink:label="us-gaap_RepaymentsOfOtherDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfOtherDebt" xlink:to="us-gaap_RepaymentsOfOtherDebt_lbl_42ff65" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RepaymentsOfOtherDebt_lbl_42ff65" xml:lang="en-US">Monthly payments amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl_2b6f74" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl_2b6f74" xml:lang="en-US">Interest rate per annum</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FloorInterestRatePerAnnumOfDebt" xlink:label="tssi_FloorInterestRatePerAnnumOfDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_FloorInterestRatePerAnnumOfDebt" xlink:to="tssi_FloorInterestRatePerAnnumOfDebt_lbl_1cd0be" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_FloorInterestRatePerAnnumOfDebt_lbl_1cd0be" xml:lang="en-US">Floor interest rate per annum</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Cash" xlink:label="us-gaap_Cash" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Cash" xlink:to="us-gaap_Cash_lbl_d3c6b2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Cash_lbl_d3c6b2" xml:lang="en-US">Cash deposit</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtAverageAmountOutstanding" xlink:label="us-gaap_LongTermDebtAverageAmountOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtAverageAmountOutstanding" xlink:to="us-gaap_LongTermDebtAverageAmountOutstanding_lbl_b3a744" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtAverageAmountOutstanding_lbl_b3a744" xml:lang="en-US">Loan Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl_13706c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl_13706c" xml:lang="en-US">Line of credit facility, remaining borrowing capacity</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DefaultInterestRatePerAnnumOfDebt" xlink:label="tssi_DefaultInterestRatePerAnnumOfDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_DefaultInterestRatePerAnnumOfDebt" xlink:to="tssi_DefaultInterestRatePerAnnumOfDebt_lbl_e38e6c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_DefaultInterestRatePerAnnumOfDebt_lbl_e38e6c" xml:lang="en-US">Default interest rate per annum</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CreditAgreementDescription" xlink:label="tssi_CreditAgreementDescription" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CreditAgreementDescription" xlink:to="tssi_CreditAgreementDescription_lbl_04aafa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CreditAgreementDescription_lbl_04aafa" xml:lang="en-US">Description of agreement</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LineOfCreditFacilityMinimumLiquidityThreshold" xlink:label="tssi_LineOfCreditFacilityMinimumLiquidityThreshold" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_LineOfCreditFacilityMinimumLiquidityThreshold" xlink:to="tssi_LineOfCreditFacilityMinimumLiquidityThreshold_lbl_045486" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_LineOfCreditFacilityMinimumLiquidityThreshold_lbl_045486" xml:lang="en-US">Line of credit facility, minimum liquidity</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeverageRatioDescription" xlink:label="tssi_LeverageRatioDescription" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_LeverageRatioDescription" xlink:to="tssi_LeverageRatioDescription_lbl_5d26ab" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_LeverageRatioDescription_lbl_5d26ab" xml:lang="en-US">Description of leverage ratio</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement" xlink:label="tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement" xlink:to="tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement_lbl_159f3c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement_lbl_159f3c" xml:lang="en-US">Additional incremental term loans</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" xlink:label="tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" xlink:to="tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod_lbl_81dc38" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod_lbl_81dc38" xml:lang="en-US">Weighted average remaining lease term - operating leases (months)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableLeaseCost" xlink:to="us-gaap_VariableLeaseCost_lbl_058452" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_VariableLeaseCost_lbl_058452" xml:lang="en-US">Variable lease cost</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseCost" xlink:to="us-gaap_OperatingLeaseCost_lbl_5f252b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseCost_lbl_5f252b" xml:lang="en-US">Operating lease cost</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TotalOperatingLeaseCost" xlink:label="tssi_TotalOperatingLeaseCost" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TotalOperatingLeaseCost" xlink:to="tssi_TotalOperatingLeaseCost_lbl_717481" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_TotalOperatingLeaseCost_lbl_717481" xml:lang="en-US">Total operating lease cost</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OperatingLeaseRightOfUseAssets" xlink:label="tssi_OperatingLeaseRightOfUseAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_OperatingLeaseRightOfUseAssets" xlink:to="tssi_OperatingLeaseRightOfUseAssets_lbl_10fdf1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_OperatingLeaseRightOfUseAssets_lbl_10fdf1" xml:lang="en-US">New right-of-use assets - operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl_42bbef" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_OperatingLeasePayments_lbl_42bbef" xml:lang="en-US">Cash paid for operating leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasePayments_lbl_7" xml:lang="en-US">[Operating Lease, Payments]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl_2f6d61" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl_2f6d61" xml:lang="en-US">Weighted average discount rate - operating leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_d29184" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_d29184" xml:lang="en-US">2025</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_ebe858" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_ebe858" xml:lang="en-US">2026</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_377b9b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_377b9b" xml:lang="en-US">2027</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_611a09" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_611a09" xml:lang="en-US">2028</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_e40c91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_e40c91" xml:lang="en-US">2029</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" xlink:label="tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" xlink:to="tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_lbl_f07efb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_lbl_f07efb" xml:lang="en-US">2030</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:to="tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl_1ab8c8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl_1ab8c8" xml:lang="en-US">Thereafter</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl_0a499d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl_0a499d" xml:lang="en-US">Total minimum future lease payments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_0440fa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_0440fa" xml:lang="en-US">Less imputed interest</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_10" xml:lang="en-US">[Lessee, Operating Lease, Liability, Undiscounted Excess Amount]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl_b0eac6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl_b0eac6" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl_11" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiability_lbl_11" xml:lang="en-US">[Operating Lease, Liability]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl_5f30a5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_5f30a5" xml:lang="en-US">Current portion of lease liability</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_4d65a9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_4d65a9" xml:lang="en-US">Non-current portion of lease liability</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CapitalLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_CapitalLeasesFutureMinimumPaymentsDue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_CapitalLeasesFutureMinimumPaymentsDue_lbl_8b3b10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalLeasesFutureMinimumPaymentsDue_lbl_8b3b10" xml:lang="en-US">Future minimum lease payments under non-cancellable leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_BottomMember" xlink:to="tssi_BottomMember_lbl_751e73" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tssi_BottomMember_lbl_751e73" xml:lang="en-US">Bottom [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_TopMember" xlink:to="tssi_TopMember_lbl_8cb9e4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tssi_TopMember_lbl_8cb9e4" xml:lang="en-US">Top [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OperatingLeaseRemainingLeaseTerm" xlink:label="tssi_OperatingLeaseRemainingLeaseTerm" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_OperatingLeaseRemainingLeaseTerm" xlink:to="tssi_OperatingLeaseRemainingLeaseTerm_lbl_ae2583" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_OperatingLeaseRemainingLeaseTerm_lbl_ae2583" xml:lang="en-US">Lessee, Operating Lease, Remaining Lease Term</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl_9f0122" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl_9f0122" xml:lang="en-US">Income Statement Location Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_BasicNetIncomePerShareMember" xlink:label="tssi_BasicNetIncomePerShareMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_BasicNetIncomePerShareMember" xlink:to="tssi_BasicNetIncomePerShareMember_lbl_620da3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_BasicNetIncomePerShareMember_lbl_620da3" xml:lang="en-US">Basic Net Income Per Share</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DilutedNetIncomePerShareMember" xlink:label="tssi_DilutedNetIncomePerShareMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_DilutedNetIncomePerShareMember" xlink:to="tssi_DilutedNetIncomePerShareMember_lbl_54d3c7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_DilutedNetIncomePerShareMember_lbl_54d3c7" xml:lang="en-US">Diluted Net Income Per Share</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl_4e03cb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareBasic_lbl_4e03cb" xml:lang="en-US">Basic net income per share (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAttributableToParentDiluted" xlink:to="us-gaap_NetIncomeLossAttributableToParentDiluted_lbl_c449ee" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLossAttributableToParentDiluted_lbl_c449ee" xml:lang="en-US">Net income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAttributableToParentDiluted" xlink:label="us-gaap_NetIncomeLossAttributableToParentDiluted" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAttributableToParentDiluted" xlink:to="us-gaap_NetIncomeLossAttributableToParentDiluted_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLossAttributableToParentDiluted_lbl_3" xml:lang="en-US">[Net Income (Loss) Attributable to Parent, Diluted]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_d05c1a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_d05c1a" xml:lang="en-US">Weighted-average shares of common stock outstanding (in shares)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_039247" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_039247" xml:lang="en-US">Number of shares used in diluted per-share computation (in shares)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:label="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:to="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants_lbl_a1b7f3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants_lbl_a1b7f3" xml:lang="en-US">Dilutive options and warrants outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl_496d4a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareDiluted_lbl_496d4a" xml:lang="en-US">Diluted net income per share (in dollars per share)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl_3cf2a5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl_3cf2a5" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsAxis_lbl_820d51" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ConsolidationItemsAxis_lbl_820d51" xml:lang="en-US">Consolidation Items Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingSegmentsMember" xlink:to="us-gaap_OperatingSegmentsMember_lbl_564c95" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingSegmentsMember_lbl_564c95" xml:lang="en-US">Operating Segments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementMember" xlink:label="tssi_ProcurementMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_ProcurementMember" xlink:to="tssi_ProcurementMember_lbl_0630b1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_ProcurementMember_lbl_0630b1" xml:lang="en-US">Procurement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SystemIntegrationMember" xlink:label="tssi_SystemIntegrationMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_SystemIntegrationMember" xlink:to="tssi_SystemIntegrationMember_lbl_7e5058" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_SystemIntegrationMember_lbl_7e5058" xml:lang="en-US">System Integration [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Revenues" xlink:to="us-gaap_Revenues_lbl_03e763" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_Revenues_lbl_03e763" xml:lang="en-US">Total revenues</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenue" xlink:to="us-gaap_CostOfRevenue_lbl_489dd8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CostOfRevenue_lbl_489dd8" xml:lang="en-US">Cost of revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl_17da0b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_GrossProfit_lbl_17da0b" xml:lang="en-US">Gross profit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl_682155" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl_682155" xml:lang="en-US">Payroll and benefits excluded from cost of revenues</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl_3428c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DepreciationAndAmortization_lbl_3428c6" xml:lang="en-US">Depreciation and amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherGeneralExpense" xlink:label="us-gaap_OtherGeneralExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherGeneralExpense" xlink:to="us-gaap_OtherGeneralExpense_lbl_377a08" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherGeneralExpense_lbl_377a08" xml:lang="en-US">Other operating expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl_205aa3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InterestExpense_lbl_205aa3" xml:lang="en-US">Interest Expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_7ebc96" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_7ebc96" xml:lang="en-US">Pre-tax income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl_8a6d81" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_Assets_lbl_8a6d81" xml:lang="en-US">Total assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CapitalExpendituresAssets" xlink:to="tssi_CapitalExpendituresAssets_lbl_ac9358" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tssi_CapitalExpendituresAssets_lbl_ac9358" xml:lang="en-US">Capital expenditures</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CapitalExpendituresAssets" xlink:label="tssi_CapitalExpendituresAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CapitalExpendituresAssets" xlink:to="tssi_CapitalExpendituresAssets_lbl_11" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CapitalExpendituresAssets_lbl_11" xml:lang="en-US">[Capital expenditures]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossBeforeTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossBeforeTax" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossBeforeTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossBeforeTax_lbl_d6fa3d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossBeforeTax_lbl_d6fa3d" xml:lang="en-US">Total segment pre-tax income (loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" xlink:label="tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" xlink:to="tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses_lbl_2504b7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses_lbl_2504b7" xml:lang="en-US">Less: Unallocated SG&amp;A, depreciation and other operating expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeExpenseNet" xlink:label="us-gaap_InterestIncomeExpenseNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeExpenseNet" xlink:to="us-gaap_InterestIncomeExpenseNet_lbl_7edaf1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeExpenseNet_lbl_7edaf1" xml:lang="en-US">Plus: Unallocated interest income, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherExpenses" xlink:label="us-gaap_OtherExpenses" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherExpenses" xlink:to="us-gaap_OtherExpenses_lbl_5004db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherExpenses_lbl_5004db" xml:lang="en-US">Less other expense (plus other income)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes" xlink:label="us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes" xlink:to="us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes_lbl_82fdb8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes_lbl_82fdb8" xml:lang="en-US">Consolidated pre-tax income</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CombinedTotalAssetsIncludedInSegments" xlink:label="tssi_CombinedTotalAssetsIncludedInSegments" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_CombinedTotalAssetsIncludedInSegments" xlink:to="tssi_CombinedTotalAssetsIncludedInSegments_lbl_e42ca6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_CombinedTotalAssetsIncludedInSegments_lbl_e42ca6" xml:lang="en-US">Combined total assets included in segments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherCashEquivalentsAtCarryingValue" xlink:to="us-gaap_OtherCashEquivalentsAtCarryingValue_lbl_52e75b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherCashEquivalentsAtCarryingValue_lbl_52e75b" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherCashEquivalentsAtCarryingValue" xlink:label="us-gaap_OtherCashEquivalentsAtCarryingValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherCashEquivalentsAtCarryingValue" xlink:to="us-gaap_OtherCashEquivalentsAtCarryingValue_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherCashEquivalentsAtCarryingValue_lbl_3" xml:lang="en-US">[Other Cash Equivalents, at Carrying Value]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_PrepaidExpenseAndOtherCurrentAssets" xlink:to="tssi_PrepaidExpenseAndOtherCurrentAssets_lbl_f203a4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tssi_PrepaidExpenseAndOtherCurrentAssets_lbl_f203a4" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_PrepaidExpenseAndOtherCurrentAssets" xlink:label="tssi_PrepaidExpenseAndOtherCurrentAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_PrepaidExpenseAndOtherCurrentAssets" xlink:to="tssi_PrepaidExpenseAndOtherCurrentAssets_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_PrepaidExpenseAndOtherCurrentAssets_lbl_4" xml:lang="en-US">[Prepaid expenses and other current assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_PropertyPlantAndEquipmentNetTotal" xlink:to="tssi_PropertyPlantAndEquipmentNetTotal_lbl_47e811" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tssi_PropertyPlantAndEquipmentNetTotal_lbl_47e811" xml:lang="en-US">Property and equipment, net</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_PropertyPlantAndEquipmentNetTotal" xlink:label="tssi_PropertyPlantAndEquipmentNetTotal" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_PropertyPlantAndEquipmentNetTotal" xlink:to="tssi_PropertyPlantAndEquipmentNetTotal_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_PropertyPlantAndEquipmentNetTotal_lbl_5" xml:lang="en-US">[Property and equipment, net]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl_e6256e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl_e6256e" xml:lang="en-US">Lease right-of-use asset</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssets" xlink:to="us-gaap_OtherAssets_lbl_4fb04b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherAssets_lbl_4fb04b" xml:lang="en-US">Other assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssets" xlink:label="us-gaap_OtherAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssets" xlink:to="us-gaap_OtherAssets_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssets_lbl_7" xml:lang="en-US">[Other Assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl_c374fc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_Assets_lbl_c374fc" xml:lang="en-US">Consolidated total assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl_146369" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl_146369" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl_7474c1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventMember_lbl_7474c1" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConstructionLoan" xlink:label="us-gaap_ConstructionLoan" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConstructionLoan" xlink:to="us-gaap_ConstructionLoan_lbl_4b0bcd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConstructionLoan_lbl_4b0bcd" xml:lang="en-US">Construction loan</link:label>
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_MonthlyPaymentOfLoanUnderCreditAgreement" xlink:label="tssi_MonthlyPaymentOfLoanUnderCreditAgreement" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tssi_MonthlyPaymentOfLoanUnderCreditAgreement" xlink:to="tssi_MonthlyPaymentOfLoanUnderCreditAgreement_lbl_d0829b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tssi_MonthlyPaymentOfLoanUnderCreditAgreement_lbl_d0829b" xml:lang="en-US">Monthly payment of loan</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tssi_LineOfCreditFacilityMinimumLiquidityThreshold" xlink:to="tssi_LineOfCreditFacilityMinimumLiquidityThreshold_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tssi_LineOfCreditFacilityMinimumLiquidityThreshold_d">The amount of liquidity that the company is required to maintain for the line of credit agreement.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" xlink:to="tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod_d">The weighted average remaining lease term for operating leases during the period, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:to="tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_d">Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fourth fiscal year following latest fiscal year.</link:label>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>8
<FILENAME>tssi-20250630_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 08/10/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tssi.com/role/Cover" xlink:href="tssi-20250630.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tssi-20250630.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals" xlink:href="tssi-20250630.xsd#ConsolidatedBalanceSheetsParentheticals" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPolicies" xlink:href="tssi-20250630.xsd#SignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformation" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LongTermDebt" xlink:href="tssi-20250630.xsd#LongTermDebt" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangements" xlink:href="tssi-20250630.xsd#LeasingArrangements" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShare" xlink:href="tssi-20250630.xsd#EarningsPerShare" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReporting" xlink:href="tssi-20250630.xsd#SegmentReporting" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SubsequentEvents" xlink:href="tssi-20250630.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesPolicies" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesTables" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationTables" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsTables" xlink:href="tssi-20250630.xsd#LeasingArrangementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareTables" xlink:href="tssi-20250630.xsd#EarningsPerShareTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingTables" xlink:href="tssi-20250630.xsd#SegmentReportingTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails1" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails2" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails3" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails1" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails2" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails3" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails4" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails5" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails5" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails6" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails6" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails7" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails7" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails8" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails8" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LongTermDebtDetailsNarrative" xlink:href="tssi-20250630.xsd#LongTermDebtDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetails" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetails1" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetailsNarrative" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareDetails" xlink:href="tssi-20250630.xsd#EarningsPerShareDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareDetailsNarrative" xlink:href="tssi-20250630.xsd#EarningsPerShareDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails" xlink:href="tssi-20250630.xsd#SegmentReportingDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails1" xlink:href="tssi-20250630.xsd#SegmentReportingDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails2" xlink:href="tssi-20250630.xsd#SegmentReportingDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SubsequentEventsDetailsNarrative" xlink:href="tssi-20250630.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/Cover" xlink:title="00000001 - Document - Document and Entity Information" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/CondensedConsolidatedBalanceSheets" xlink:title="110200 - Statement - Condensed Consolidated Balance Sheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="loc_us-gaapReceivablesNetCurrent" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapReceivablesNetCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="loc_us-gaapContractWithCustomerAssetNetCurrent" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapContractWithCustomerAssetNetCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapInventoryNet" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapAssetsCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaapGoodwill" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapGoodwill" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedCash" xlink:label="loc_us-gaapRestrictedCash" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapRestrictedCash" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaapOtherAssetsNoncurrent" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapOtherAssetsNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:label="loc_us-gaapAccountsPayableAndAccruedLiabilitiesCurrent" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccountsPayableAndAccruedLiabilitiesCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="loc_us-gaapDeferredRevenueCurrent" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapDeferredRevenueCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="loc_us-gaapLongTermDebtNoncurrent" />
    <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapLongTermDebtNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
    <link:calculationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="loc_us-gaapDeferredRevenueNoncurrent" />
    <link:calculationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapDeferredRevenueNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities" />
    <link:calculationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesCurrent" xlink:type="arc" weight="1" />
    <link:calculationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue" />
    <link:calculationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapPreferredStockValue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
    <link:calculationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapCommonStockValue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital" />
    <link:calculationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapAdditionalPaidInCapital" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit" />
    <link:calculationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStocksCommonValue" xlink:label="loc_tssiTreasuryStocksCommonValue" />
    <link:calculationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_tssiTreasuryStocksCommonValue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity" />
    <link:calculationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapLiabilities" xlink:type="arc" weight="1" />
    <link:calculationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapStockholdersEquity" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals" xlink:title="110201 - Statement - Consolidated Balance Sheets (Parentheticals)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations" xlink:title="124100 - Statement - Unaudited Consolidated Statements of Operations">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromProcurement" xlink:label="loc_tssiRevenueFromProcurement" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapRevenues" xlink:to="loc_tssiRevenueFromProcurement" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromFacilitiesManagement" xlink:label="loc_tssiRevenueFromFacilitiesManagement" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapRevenues" xlink:to="loc_tssiRevenueFromFacilitiesManagement" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromSystemIntegration" xlink:label="loc_tssiRevenueFromSystemIntegration" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapRevenues" xlink:to="loc_tssiRevenueFromSystemIntegration" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapRevenues" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapCostOfRevenue" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="loc_us-gaapSellingGeneralAndAdministrativeExpense" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapSellingGeneralAndAdministrativeExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapDepreciationAndAmortization" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapGrossProfit" xlink:type="arc" weight="1" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapOperatingExpenses" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapInterestExpense" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeOther" xlink:label="loc_us-gaapInterestIncomeOther" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapInterestIncomeOther" xlink:type="arc" weight="1" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapOperatingIncomeLoss" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit" xlink:type="arc" weight="-1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:title="148600 - Statement - Unaudited Consolidated Statements of Changes in Stockholders Equity" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows" xlink:title="170000 - Statement - Unaudited Consolidated Statements of Cash Flows">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapNetIncomeLoss" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapDepreciationAndAmortization" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapShareBasedCompensation" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaapAmortizationOfIntangibleAssets" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapAmortizationOfIntangibleAssets" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="loc_us-gaapIncreaseDecreaseInReceivables" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInReceivables" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInUnbilledReceivables" xlink:label="loc_us-gaapIncreaseDecreaseInUnbilledReceivables" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInUnbilledReceivables" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInInventories" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_IncreaseDecreaseInRightOfUseAsset" xlink:label="loc_tssiIncreaseDecreaseInRightOfUseAsset" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_tssiIncreaseDecreaseInRightOfUseAsset" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayableAndAccruedLiabilities" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="loc_us-gaapIncreaseDecreaseInDeferredRevenue" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInDeferredRevenue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingLeaseLiability" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingLeaseLiability" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForOtherCreditLosses" xlink:label="loc_us-gaapProvisionForOtherCreditLosses" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapProvisionForOtherCreditLosses" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireProductiveAssets" xlink:label="loc_us-gaapPaymentsToAcquireProductiveAssets" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:to="loc_us-gaapPaymentsToAcquireProductiveAssets" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt" xlink:label="loc_us-gaapProceedsFromIssuanceOfSeniorLongTermDebt" />
    <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_us-gaapProceedsFromIssuanceOfSeniorLongTermDebt" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised" />
    <link:calculationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_us-gaapProceedsFromStockOptionsExercised" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="loc_us-gaapPaymentsForRepurchaseOfCommonStock" />
    <link:calculationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_us-gaapPaymentsForRepurchaseOfCommonStock" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" />
    <link:calculationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:type="arc" weight="1" />
    <link:calculationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:type="arc" weight="1" />
    <link:calculationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" xlink:label="loc_tssiCashCashEquivalentsAndRestrictedCashBeginningOfPeriods" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashAndCashEquivalentsBeginningOfPeriod" xlink:label="loc_tssiCashAndCashEquivalentsBeginningOfPeriod" />
    <link:calculationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tssiCashCashEquivalentsAndRestrictedCashBeginningOfPeriods" xlink:to="loc_tssiCashAndCashEquivalentsBeginningOfPeriod" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RestrictedCashBeginningOfPeriod" xlink:label="loc_tssiRestrictedCashBeginningOfPeriod" />
    <link:calculationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tssiCashCashEquivalentsAndRestrictedCashBeginningOfPeriods" xlink:to="loc_tssiRestrictedCashBeginningOfPeriod" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods" xlink:label="loc_tssiCashCashEquivalentsAndRestrictedCashEndOfPeriods" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashAndCashEquivalentsEndOfPeriod" xlink:label="loc_tssiCashAndCashEquivalentsEndOfPeriod" />
    <link:calculationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tssiCashCashEquivalentsAndRestrictedCashEndOfPeriods" xlink:to="loc_tssiCashAndCashEquivalentsEndOfPeriod" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RestrictedCashEndOfPeriod" xlink:label="loc_tssiRestrictedCashEndOfPeriod" />
    <link:calculationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_tssiCashCashEquivalentsAndRestrictedCashEndOfPeriods" xlink:to="loc_tssiRestrictedCashEndOfPeriod" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPolicies" xlink:title="995446 - Disclosure - Significant Accounting Policies" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformation" xlink:title="995447 - Disclosure - Supplemental Balance Sheet Information" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/LongTermDebt" xlink:title="995448 - Disclosure - Long Term Debt" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangements" xlink:title="995449 - Disclosure - Leasing Arrangements" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShare" xlink:title="995450 - Disclosure - Earnings Per-Share" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReporting" xlink:title="995451 - Disclosure - Segment Reporting" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SubsequentEvents" xlink:title="995452 - Disclosure - Subsequent Events" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesPolicies" xlink:title="995453 - Disclosure - Significant Accounting Policies (Policies)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesTables" xlink:title="995454 - Disclosure - Significant Accounting Policies (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationTables" xlink:title="995455 - Disclosure - Supplemental Balance Sheet Information (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsTables" xlink:title="995456 - Disclosure - Leasing Arrangements (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareTables" xlink:title="995457 - Disclosure - Earnings Per-Share (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingTables" xlink:title="995458 - Disclosure - Segment Reporting (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails" xlink:title="995459 - Disclosure - Significant Accounting Policies (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails1" xlink:title="995460 - Disclosure - Significant Accounting Policies (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails2" xlink:title="995461 - Disclosure - Significant Accounting Policies (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails3" xlink:title="995462 - Disclosure - Significant Accounting Policies (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative" xlink:title="995463 - Disclosure - Significant Accounting Policies (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails" xlink:title="995464 - Disclosure - Supplemental Balance Sheet Information (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails1" xlink:title="995465 - Disclosure - Supplemental Balance Sheet Information (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails2" xlink:title="995466 - Disclosure - Supplemental Balance Sheet Information (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails3" xlink:title="995467 - Disclosure - Supplemental Balance Sheet Information (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails4" xlink:title="995468 - Disclosure - Supplemental Balance Sheet Information (Details 4)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails5" xlink:title="995469 - Disclosure - Supplemental Balance Sheet Information (Details 5)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails6" xlink:title="995470 - Disclosure - Supplemental Balance Sheet Information (Details 6)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails7" xlink:title="995471 - Disclosure - Supplemental Balance Sheet Information (Details 7)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails8" xlink:title="995472 - Disclosure - Supplemental Balance Sheet Information (Details 8)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative" xlink:title="995473 - Disclosure - Supplemental Balance Sheet Information (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/LongTermDebtDetailsNarrative" xlink:title="995474 - Disclosure - Long Term Debt (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetails" xlink:title="995475 - Disclosure - Leasing Arrangements (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetails1" xlink:title="995476 - Disclosure - Leasing Arrangements (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetailsNarrative" xlink:title="995477 - Disclosure - Leasing Arrangements (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareDetails" xlink:title="995478 - Disclosure - Earnings Per-Share (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareDetailsNarrative" xlink:title="995479 - Disclosure - Earnings Per-Share (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails" xlink:title="995480 - Disclosure - Segment Reporting (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails1" xlink:title="995481 - Disclosure - Segment Reporting (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails2" xlink:title="995482 - Disclosure - Segment Reporting (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tssi.com/role/SubsequentEventsDetailsNarrative" xlink:title="995483 - Disclosure - Subsequent Events (Details Narrative)" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>9
<FILENAME>tssi-20250630_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 08/10/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tssi.com/role/Cover" xlink:href="tssi-20250630.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tssi-20250630.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals" xlink:href="tssi-20250630.xsd#ConsolidatedBalanceSheetsParentheticals" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#InsiderTradingArrangements" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPolicies" xlink:href="tssi-20250630.xsd#SignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformation" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LongTermDebt" xlink:href="tssi-20250630.xsd#LongTermDebt" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangements" xlink:href="tssi-20250630.xsd#LeasingArrangements" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShare" xlink:href="tssi-20250630.xsd#EarningsPerShare" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReporting" xlink:href="tssi-20250630.xsd#SegmentReporting" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SubsequentEvents" xlink:href="tssi-20250630.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesPolicies" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesTables" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationTables" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsTables" xlink:href="tssi-20250630.xsd#LeasingArrangementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareTables" xlink:href="tssi-20250630.xsd#EarningsPerShareTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingTables" xlink:href="tssi-20250630.xsd#SegmentReportingTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails1" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails2" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails3" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails1" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails2" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails3" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails4" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails5" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails5" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails6" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails6" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails7" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails7" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails8" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails8" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LongTermDebtDetailsNarrative" xlink:href="tssi-20250630.xsd#LongTermDebtDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetails" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetails1" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetailsNarrative" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareDetails" xlink:href="tssi-20250630.xsd#EarningsPerShareDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareDetailsNarrative" xlink:href="tssi-20250630.xsd#EarningsPerShareDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails" xlink:href="tssi-20250630.xsd#SegmentReportingDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails1" xlink:href="tssi-20250630.xsd#SegmentReportingDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails2" xlink:href="tssi-20250630.xsd#SegmentReportingDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SubsequentEventsDetailsNarrative" xlink:href="tssi-20250630.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/Cover" xlink:title="00000001 - Document - Cover Page Information">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="loc_deiCoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName" xlink:label="loc_deiEntityRegistrantName" />
    <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityRegistrantName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey" xlink:label="loc_deiEntityCentralIndexKey" />
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCentralIndexKey" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType" xlink:label="loc_deiDocumentType" />
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentType" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag" xlink:label="loc_deiAmendmentFlag" />
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAmendmentFlag" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_deiCurrentFiscalYearEndDate" />
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCurrentFiscalYearEndDate" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness" xlink:label="loc_deiEntitySmallBusiness" />
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntitySmallBusiness" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany" xlink:label="loc_deiEntityShellCompany" />
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityShellCompany" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_deiEntityEmergingGrowthCompany" />
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityEmergingGrowthCompany" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_deiEntityCurrentReportingStatus" />
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCurrentReportingStatus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_deiDocumentPeriodEndDate" />
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentPeriodEndDate" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory" xlink:label="loc_deiEntityFilerCategory" />
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFilerCategory" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_deiDocumentFiscalPeriodFocus" />
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalPeriodFocus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_deiDocumentFiscalYearFocus" />
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalYearFocus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_deiEntityCommonStockSharesOutstanding" />
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCommonStockSharesOutstanding" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber" xlink:label="loc_deiEntityFileNumber" />
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFileNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="loc_deiEntityIncorporationStateCountryCode" />
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityIncorporationStateCountryCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber" xlink:label="loc_deiEntityTaxIdentificationNumber" />
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityTaxIdentificationNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1" xlink:label="loc_deiEntityAddressAddressLine1" />
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine1" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown" xlink:label="loc_deiEntityAddressCityOrTown" />
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressCityOrTown" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince" xlink:label="loc_deiEntityAddressStateOrProvince" />
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressStateOrProvince" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode" xlink:label="loc_deiEntityAddressPostalZipCode" />
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressPostalZipCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode" xlink:label="loc_deiCityAreaCode" />
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCityAreaCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber" xlink:label="loc_deiLocalPhoneNumber" />
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiLocalPhoneNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle" xlink:label="loc_deiSecurity12bTitle" />
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurity12bTitle" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol" xlink:label="loc_deiTradingSymbol" />
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiTradingSymbol" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName" xlink:label="loc_deiSecurityExchangeName" />
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurityExchangeName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentQuarterlyReport" xlink:label="loc_deiDocumentQuarterlyReport" />
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentQuarterlyReport" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport" xlink:label="loc_deiDocumentTransitionReport" />
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentTransitionReport" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent" xlink:label="loc_deiEntityInteractiveDataCurrent" />
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityInteractiveDataCurrent" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine2" xlink:label="loc_deiEntityAddressAddressLine2" />
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine2" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine3" xlink:label="loc_deiEntityAddressAddressLine3" />
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine3" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/CondensedConsolidatedBalanceSheets" xlink:title="110200 - Statement - Condensed Consolidated Balance Sheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="loc_us-gaapAssetsCurrentAbstract_6bd5e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapAssetsCurrentAbstract_6bd5e2" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_85e0ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_85e0ab" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="loc_us-gaapReceivablesNetCurrent_9d4c29" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapReceivablesNetCurrent_9d4c29" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="loc_us-gaapContractWithCustomerAssetNetCurrent_c65bea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapContractWithCustomerAssetNetCurrent_c65bea" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet_992bf1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapInventoryNet_992bf1" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent_5e860a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent_5e860a" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent_362ed6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapAssetsCurrent_362ed6" order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet_1453df" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet_1453df" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_63fef0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_63fef0" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaapGoodwill_9cb934" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapGoodwill_9cb934" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedCash" xlink:label="loc_us-gaapRestrictedCash_c8e4dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapRestrictedCash_c8e4dd" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaapOtherAssetsNoncurrent_57b564" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapOtherAssetsNoncurrent_57b564" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets_709e0a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapAssets_709e0a" order="13" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaapLiabilitiesCurrentAbstract_92788d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapLiabilitiesCurrentAbstract_92788d" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:label="loc_us-gaapAccountsPayableAndAccruedLiabilitiesCurrent_a9c347" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_92788d" xlink:to="loc_us-gaapAccountsPayableAndAccruedLiabilitiesCurrent_a9c347" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="loc_us-gaapDeferredRevenueCurrent_535514" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_92788d" xlink:to="loc_us-gaapDeferredRevenueCurrent_535514" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_d7cf01" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_d7cf01" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent_2c9e09" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapLiabilitiesCurrent_2c9e09" order="18" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="loc_us-gaapLiabilitiesNoncurrentAbstract_f65d56" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapLiabilitiesNoncurrentAbstract_f65d56" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="loc_us-gaapLongTermDebtNoncurrent_5c4e47" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f65d56" xlink:to="loc_us-gaapLongTermDebtNoncurrent_5c4e47" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_dba04b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f65d56" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_dba04b" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="loc_us-gaapDeferredRevenueNoncurrent_f1d4ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f65d56" xlink:to="loc_us-gaapDeferredRevenueNoncurrent_f1d4ec" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent_71e93f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f65d56" xlink:to="loc_us-gaapLiabilitiesNoncurrent_71e93f" order="23" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities_27059b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapLiabilities_27059b" order="24" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_65c583" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_65c583" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_34b69a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapStockholdersEquityAbstract_34b69a" order="26" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue_0ded76" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_34b69a" xlink:to="loc_us-gaapPreferredStockValue_0ded76" order="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue_4e3894" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_34b69a" xlink:to="loc_us-gaapCommonStockValue_4e3894" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital_1a8e04" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_34b69a" xlink:to="loc_us-gaapAdditionalPaidInCapital_1a8e04" order="29" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStocksCommonValue" xlink:label="loc_tssiTreasuryStocksCommonValue_891c44" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_34b69a" xlink:to="loc_tssiTreasuryStocksCommonValue_891c44" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit_7648ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_34b69a" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit_7648ab" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_035110" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_34b69a" xlink:to="loc_us-gaapStockholdersEquity_035110" order="32" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity_f7a560" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_6b0021" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquity_f7a560" order="33" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals" xlink:title="110201 - Statement - Consolidated Balance Sheets (Parentheticals)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaapCommonStockParOrStatedValuePerShare_e841c0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" xlink:to="loc_us-gaapCommonStockParOrStatedValuePerShare_e841c0" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized_58b36e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" xlink:to="loc_us-gaapCommonStockSharesAuthorized_58b36e" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaapCommonStockSharesIssued_e7604c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" xlink:to="loc_us-gaapCommonStockSharesIssued_e7604c" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding_bbad87" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" xlink:to="loc_us-gaapCommonStockSharesOutstanding_bbad87" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare_e87dbb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare_e87dbb" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_a70d16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_a70d16" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued_b265e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" xlink:to="loc_us-gaapPreferredStockSharesIssued_b265e2" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="loc_us-gaapTreasuryStockCommonShares_aa1eea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_03641f" xlink:to="loc_us-gaapTreasuryStockCommonShares_aa1eea" order="8" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations" xlink:title="124100 - Statement - Unaudited Consolidated Statements of Operations">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="loc_us-gaapIncomeStatementAbstract_4068a3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenuesAbstract" xlink:label="loc_us-gaapRevenuesAbstract_c06993" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_4068a3" xlink:to="loc_us-gaapRevenuesAbstract_c06993" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromProcurement" xlink:label="loc_tssiRevenueFromProcurement_d38161" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenuesAbstract_c06993" xlink:to="loc_tssiRevenueFromProcurement_d38161" order="2" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromFacilitiesManagement" xlink:label="loc_tssiRevenueFromFacilitiesManagement_11ed58" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenuesAbstract_c06993" xlink:to="loc_tssiRevenueFromFacilitiesManagement_11ed58" order="3" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenueFromSystemIntegration" xlink:label="loc_tssiRevenueFromSystemIntegration_08f088" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenuesAbstract_c06993" xlink:to="loc_tssiRevenueFromSystemIntegration_08f088" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues_967d73" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenuesAbstract_c06993" xlink:to="loc_us-gaapRevenues_967d73" order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue_3e46e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenuesAbstract_c06993" xlink:to="loc_us-gaapCostOfRevenue_3e46e2" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit_12b956" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenuesAbstract_c06993" xlink:to="loc_us-gaapGrossProfit_12b956" order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="loc_us-gaapOperatingExpensesAbstract_c6cdc7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenuesAbstract_c06993" xlink:to="loc_us-gaapOperatingExpensesAbstract_c6cdc7" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="loc_us-gaapSellingGeneralAndAdministrativeExpense_dbfe04" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract_c6cdc7" xlink:to="loc_us-gaapSellingGeneralAndAdministrativeExpense_dbfe04" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization_aaecd2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract_c6cdc7" xlink:to="loc_us-gaapDepreciationAndAmortization_aaecd2" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses_7483bf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract_c6cdc7" xlink:to="loc_us-gaapOperatingExpenses_7483bf" order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss_2e3be0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract_c6cdc7" xlink:to="loc_us-gaapOperatingIncomeLoss_2e3be0" order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense_724511" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract_c6cdc7" xlink:to="loc_us-gaapInterestExpense_724511" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeOther" xlink:label="loc_us-gaapInterestIncomeOther_3109a3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract_c6cdc7" xlink:to="loc_us-gaapInterestIncomeOther_3109a3" order="14" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_f5bae3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract_c6cdc7" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_f5bae3" order="15" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit_b91ed5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract_c6cdc7" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit_b91ed5" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_70eb0a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_4068a3" xlink:to="loc_us-gaapNetIncomeLoss_70eb0a" order="17" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic_d5e1ee" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_4068a3" xlink:to="loc_us-gaapEarningsPerShareBasic_d5e1ee" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted_dd30c6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_4068a3" xlink:to="loc_us-gaapEarningsPerShareDiluted_dd30c6" order="19" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:title="148600 - Statement - Unaudited Consolidated Statements of Changes in Stockholders Equity">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="loc_us-gaapStatementOfStockholdersEquityAbstract_f3e75d" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_d0e686" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfStockholdersEquityAbstract_f3e75d" xlink:to="loc_us-gaapStatementTable_d0e686" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_b3c2be" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_d0e686" xlink:to="loc_us-gaapStatementLineItems_b3c2be" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis_92b44c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_d0e686" xlink:to="loc_us-gaapStatementEquityComponentsAxis_92b44c" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_bffbea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis_92b44c" xlink:to="loc_us-gaapEquityComponentDomain_bffbea" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember_2fa0c5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_bffbea" xlink:to="loc_us-gaapCommonStockMember_2fa0c5" order="21" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryCommonSharesMember" xlink:label="loc_tssiTreasuryCommonSharesMember_e59a05" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_bffbea" xlink:to="loc_tssiTreasuryCommonSharesMember_e59a05" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember_291152" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_bffbea" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember_291152" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember_980548" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_bffbea" xlink:to="loc_us-gaapRetainedEarningsMember_980548" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued_ba0cab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapSharesIssued_ba0cab" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_e2453e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapStockholdersEquity_e2453e" order="2" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesRestrictedStockAwardGross_caf14d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesRestrictedStockAwardGross_caf14d" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueRestrictedStockAwardGross_7d63e8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueRestrictedStockAwardGross_7d63e8" order="4" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStockSharesAcquiredCostMethod" xlink:label="loc_tssiTreasuryStockSharesAcquiredCostMethod_26ff81" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_tssiTreasuryStockSharesAcquiredCostMethod_26ff81" order="5" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStockValuesAcquiredCostMethod" xlink:label="loc_tssiTreasuryStockValuesAcquiredCostMethod_d6278e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_tssiTreasuryStockValuesAcquiredCostMethod_d6278e" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_32fd5e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_32fd5e" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_bf8b22" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapNetIncomeLoss_bf8b22" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised_26613b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised_26613b" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised_be478b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised_be478b" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockSharesRetired" xlink:label="loc_us-gaapTreasuryStockSharesRetired_113b9e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapTreasuryStockSharesRetired_113b9e" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockRetiredCostMethodAmount" xlink:label="loc_us-gaapTreasuryStockRetiredCostMethodAmount_18db07" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapTreasuryStockRetiredCostMethodAmount_18db07" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued_70abc8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapSharesIssued_70abc8" order="13" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_09cb35" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3c2be" xlink:to="loc_us-gaapStockholdersEquity_09cb35" order="14" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows" xlink:title="170000 - Statement - Unaudited Consolidated Statements of Cash Flows">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_a63171" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_a63171" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_035512" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapNetIncomeLoss_035512" order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_7cb20b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_7cb20b" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization_7bcdfe" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_7cb20b" xlink:to="loc_us-gaapDepreciationAndAmortization_7bcdfe" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation_6101a0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_7cb20b" xlink:to="loc_us-gaapShareBasedCompensation_6101a0" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForOtherCreditLosses" xlink:label="loc_us-gaapProvisionForOtherCreditLosses_d19652" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_7cb20b" xlink:to="loc_us-gaapProvisionForOtherCreditLosses_d19652" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaapAmortizationOfIntangibleAssets_1cf9e0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_7cb20b" xlink:to="loc_us-gaapAmortizationOfIntangibleAssets_1cf9e0" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract_f7f925" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_7cb20b" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract_f7f925" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="loc_us-gaapIncreaseDecreaseInReceivables_cf688f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract_f7f925" xlink:to="loc_us-gaapIncreaseDecreaseInReceivables_cf688f" order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInUnbilledReceivables" xlink:label="loc_us-gaapIncreaseDecreaseInUnbilledReceivables_b1028b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapIncreaseDecreaseInUnbilledReceivables_b1028b" order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories_54aea0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapIncreaseDecreaseInInventories_54aea0" order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_baa96f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_baa96f" order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_IncreaseDecreaseInRightOfUseAsset" xlink:label="loc_tssiIncreaseDecreaseInRightOfUseAsset_414d60" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_tssiIncreaseDecreaseInRightOfUseAsset_414d60" order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayableAndAccruedLiabilities_a679a3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayableAndAccruedLiabilities_a679a3" order="14" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="loc_us-gaapIncreaseDecreaseInDeferredRevenue_394944" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapIncreaseDecreaseInDeferredRevenue_394944" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingLeaseLiability_11c143" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingLeaseLiability_11c143" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities_bc7da4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities_bc7da4" order="17" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_12c6d5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_12c6d5" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireProductiveAssets" xlink:label="loc_us-gaapPaymentsToAcquireProductiveAssets_bc39fc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_12c6d5" xlink:to="loc_us-gaapPaymentsToAcquireProductiveAssets_bc39fc" order="19" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities_bcac8b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_12c6d5" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities_bcac8b" order="20" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4f9237" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4f9237" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt" xlink:label="loc_us-gaapProceedsFromIssuanceOfSeniorLongTermDebt_7b7fea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4f9237" xlink:to="loc_us-gaapProceedsFromIssuanceOfSeniorLongTermDebt_7b7fea" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised_413997" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4f9237" xlink:to="loc_us-gaapProceedsFromStockOptionsExercised_413997" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="loc_us-gaapPaymentsForRepurchaseOfCommonStock_f21a13" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4f9237" xlink:to="loc_us-gaapPaymentsForRepurchaseOfCommonStock_f21a13" order="24" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities_2caece" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4f9237" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities_2caece" order="25" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_587792" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_587792" order="26" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_dd9b01" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_dd9b01" order="27" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_0bd53e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_0bd53e" order="28" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="loc_us-gaapSupplementalCashFlowInformationAbstract_727d96" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapSupplementalCashFlowInformationAbstract_727d96" order="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestPaidNet" xlink:label="loc_us-gaapInterestPaidNet_66db75" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract_727d96" xlink:to="loc_us-gaapInterestPaidNet_66db75" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="loc_us-gaapIncomeTaxesPaidNet_11c511" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapIncomeTaxesPaidNet_11c511" order="31" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashAndCashEquivalentsBeginningOfPeriod" xlink:label="loc_tssiCashAndCashEquivalentsBeginningOfPeriod_9679e1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_tssiCashAndCashEquivalentsBeginningOfPeriod_9679e1" order="32" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RestrictedCashBeginningOfPeriod" xlink:label="loc_tssiRestrictedCashBeginningOfPeriod_a3b642" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_tssiRestrictedCashBeginningOfPeriod_a3b642" order="33" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods" xlink:label="loc_tssiCashCashEquivalentsAndRestrictedCashBeginningOfPeriods_e17ba1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_tssiCashCashEquivalentsAndRestrictedCashBeginningOfPeriods_e17ba1" order="34" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashAndCashEquivalentsEndOfPeriod" xlink:label="loc_tssiCashAndCashEquivalentsEndOfPeriod_113731" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_tssiCashAndCashEquivalentsEndOfPeriod_113731" order="35" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RestrictedCashEndOfPeriod" xlink:label="loc_tssiRestrictedCashEndOfPeriod_a9683d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_tssiRestrictedCashEndOfPeriod_a9683d" order="36" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods" xlink:label="loc_tssiCashCashEquivalentsAndRestrictedCashEndOfPeriods_4910f8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_tssiCashCashEquivalentsAndRestrictedCashEndOfPeriods_4910f8" order="37" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_ae5731" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_a2220c" xlink:to="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_ae5731" order="38" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable" xlink:label="loc_tssiNonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable_3f49d9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_ae5731" xlink:to="loc_tssiNonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable_3f49d9" order="39" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:title="995445 - Disclosure - Insider Trading Arragements">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_InsiderTradingArrLineItems" xlink:label="loc_ecdInsiderTradingArrLineItems_b1cf06" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_Rule10b51ArrAdoptedFlag" xlink:label="loc_ecdRule10b51ArrAdoptedFlag_78006a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecdInsiderTradingArrLineItems_b1cf06" xlink:to="loc_ecdRule10b51ArrAdoptedFlag_78006a" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_Rule10b51ArrTrmntdFlag" xlink:label="loc_ecdRule10b51ArrTrmntdFlag_b666b0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecdInsiderTradingArrLineItems_b1cf06" xlink:to="loc_ecdRule10b51ArrTrmntdFlag_b666b0" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_NonRule10b51ArrAdoptedFlag" xlink:label="loc_ecdNonRule10b51ArrAdoptedFlag_29e90a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecdInsiderTradingArrLineItems_b1cf06" xlink:to="loc_ecdNonRule10b51ArrAdoptedFlag_29e90a" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_NonRule10b51ArrTrmntdFlag" xlink:label="loc_ecdNonRule10b51ArrTrmntdFlag_1c6d07" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecdInsiderTradingArrLineItems_b1cf06" xlink:to="loc_ecdNonRule10b51ArrTrmntdFlag_1c6d07" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPolicies" xlink:title="995446 - Disclosure - Significant Accounting Policies">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="loc_tssiSignificantAccountingPoliciesAbstract_893860" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="loc_us-gaapSignificantAccountingPoliciesTextBlock_921079" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_893860" xlink:to="loc_us-gaapSignificantAccountingPoliciesTextBlock_921079" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformation" xlink:title="995447 - Disclosure - Supplemental Balance Sheet Information">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_993bb8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="loc_us-gaapSupplementalBalanceSheetDisclosuresTextBlock_18cc1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_993bb8" xlink:to="loc_us-gaapSupplementalBalanceSheetDisclosuresTextBlock_18cc1c" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/LongTermDebt" xlink:title="995448 - Disclosure - Long Term Debt">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtAbstract" xlink:label="loc_us-gaapLongTermDebtAbstract_86bfe3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtTextBlock" xlink:label="loc_us-gaapLongTermDebtTextBlock_df03ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLongTermDebtAbstract_86bfe3" xlink:to="loc_us-gaapLongTermDebtTextBlock_df03ec" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangements" xlink:title="995449 - Disclosure - Leasing Arrangements">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeasingArrangementsAbstract" xlink:label="loc_tssiLeasingArrangementsAbstract_f14796" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:label="loc_us-gaapLeasesOfLesseeDisclosureTextBlock_efa1a3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f14796" xlink:to="loc_us-gaapLeasesOfLesseeDisclosureTextBlock_efa1a3" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShare" xlink:title="995450 - Disclosure - Earnings Per-Share">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract_741d95" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="loc_us-gaapEarningsPerShareTextBlock_7b6b81" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_741d95" xlink:to="loc_us-gaapEarningsPerShareTextBlock_7b6b81" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReporting" xlink:title="995451 - Disclosure - Segment Reporting">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaapSegmentReportingAbstract_6f7f43" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="loc_us-gaapSegmentReportingDisclosureTextBlock_7d3e4d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_6f7f43" xlink:to="loc_us-gaapSegmentReportingDisclosureTextBlock_7d3e4d" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SubsequentEvents" xlink:title="995452 - Disclosure - Subsequent Events">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract_018052" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="loc_us-gaapSubsequentEventsTextBlock_ca5487" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract_018052" xlink:to="loc_us-gaapSubsequentEventsTextBlock_ca5487" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesPolicies" xlink:title="995453 - Disclosure - Significant Accounting Policies (Policies)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="loc_tssiSignificantAccountingPoliciesAbstract_45b963" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="loc_us-gaapBasisOfAccountingPolicyPolicyTextBlock_7a7365" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapBasisOfAccountingPolicyPolicyTextBlock_7a7365" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="loc_us-gaapConsolidationPolicyTextBlock_82dc38" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapConsolidationPolicyTextBlock_82dc38" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="loc_us-gaapFairValueOfFinancialInstrumentsPolicy_654631" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapFairValueOfFinancialInstrumentsPolicy_654631" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="loc_us-gaapBusinessCombinationsPolicy_a52f7c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapBusinessCombinationsPolicy_a52f7c" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="loc_us-gaapRevenueRecognitionPolicyTextBlock_9dd9d5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapRevenueRecognitionPolicyTextBlock_9dd9d5" order="5" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_MaintenanceServicesPolicyTextBlock" xlink:label="loc_tssiMaintenanceServicesPolicyTextBlock_66ce64" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiMaintenanceServicesPolicyTextBlock_66ce64" order="6" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_IntegrationServicesPolicyTextBlock" xlink:label="loc_tssiIntegrationServicesPolicyTextBlock_5fdb54" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiIntegrationServicesPolicyTextBlock_5fdb54" order="7" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_EquipmentAndMaterialSalesPolicyTextBlock" xlink:label="loc_tssiEquipmentAndMaterialSalesPolicyTextBlock_500d77" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiEquipmentAndMaterialSalesPolicyTextBlock_500d77" order="8" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DeploymentAndOtherServicesPolicyTextBlock" xlink:label="loc_tssiDeploymentAndOtherServicesPolicyTextBlock_56b20a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiDeploymentAndOtherServicesPolicyTextBlock_56b20a" order="9" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementServicesPolicyTextBlock" xlink:label="loc_tssiProcurementServicesPolicyTextBlock_ef5889" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiProcurementServicesPolicyTextBlock_ef5889" order="10" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_JudgmentsPolicyTextBlock" xlink:label="loc_tssiJudgmentsPolicyTextBlock_4f1d84" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiJudgmentsPolicyTextBlock_4f1d84" order="11" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SalesTaxesPolicyTextBlock" xlink:label="loc_tssiSalesTaxesPolicyTextBlock_545b89" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiSalesTaxesPolicyTextBlock_545b89" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShippingAndHandlingCostPolicyTextBlock" xlink:label="loc_us-gaapShippingAndHandlingCostPolicyTextBlock_b495a6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapShippingAndHandlingCostPolicyTextBlock_b495a6" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRecognitionDeferredRevenue" xlink:label="loc_us-gaapRevenueRecognitionDeferredRevenue_79e922" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapRevenueRecognitionDeferredRevenue_79e922" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="loc_us-gaapConcentrationRiskCreditRisk_c44b9b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapConcentrationRiskCreditRisk_c44b9b" order="15" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_NonRecourseFactoringPolicyTextBlock" xlink:label="loc_tssiNonRecourseFactoringPolicyTextBlock_132f95" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiNonRecourseFactoringPolicyTextBlock_132f95" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy_fb83ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy_fb83ec" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock_3beab3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock_3beab3" order="18" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:label="loc_us-gaapTradeAndOtherAccountsReceivablePolicy_276cbd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapTradeAndOtherAccountsReceivablePolicy_276cbd" order="19" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="loc_tssiReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_2fabdc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_2fabdc" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="loc_us-gaapInventoryPolicyTextBlock_a5012d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapInventoryPolicyTextBlock_a5012d" order="21" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock_15ca9b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock_15ca9b" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsPolicyTextBlock_bfec55" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapGoodwillAndIntangibleAssetsPolicyTextBlock_bfec55" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="loc_us-gaapIncomeTaxPolicyTextBlock_1d4794" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapIncomeTaxPolicyTextBlock_1d4794" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="loc_us-gaapEarningsPerSharePolicyTextBlock_89d36b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapEarningsPerSharePolicyTextBlock_89d36b" order="25" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStockPolicyTextBlock" xlink:label="loc_tssiTreasuryStockPolicyTextBlock_dce531" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_tssiTreasuryStockPolicyTextBlock_dce531" order="26" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:label="loc_us-gaapCommitmentsAndContingenciesPolicyTextBlock_0987b6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapCommitmentsAndContingenciesPolicyTextBlock_0987b6" order="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock_97729b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_45b963" xlink:to="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock_97729b" order="28" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesTables" xlink:title="995454 - Disclosure - Significant Accounting Policies (Tables)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="loc_tssiSignificantAccountingPoliciesAbstract_75124c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="loc_us-gaapDisaggregationOfRevenueTableTextBlock_d2dd77" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_75124c" xlink:to="loc_us-gaapDisaggregationOfRevenueTableTextBlock_d2dd77" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock" xlink:label="loc_tssiScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock_1f323b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_75124c" xlink:to="loc_tssiScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock_1f323b" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="loc_us-gaapSchedulesOfConcentrationOfRiskByRiskFactorTextBlock_273cbc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_75124c" xlink:to="loc_us-gaapSchedulesOfConcentrationOfRiskByRiskFactorTextBlock_273cbc" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="loc_us-gaapAccountsReceivableAllowanceForCreditLossTableTextBlock_720c77" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_75124c" xlink:to="loc_us-gaapAccountsReceivableAllowanceForCreditLossTableTextBlock_720c77" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationTables" xlink:title="995455 - Disclosure - Supplemental Balance Sheet Information (Tables)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_a9b88c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="loc_us-gaapScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_c1b43e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_a9b88c" xlink:to="loc_us-gaapScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_c1b43e" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="loc_us-gaapScheduleOfInventoryCurrentTableTextBlock_0aa948" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_a9b88c" xlink:to="loc_us-gaapScheduleOfInventoryCurrentTableTextBlock_0aa948" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:label="loc_us-gaapScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_36c776" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_a9b88c" xlink:to="loc_us-gaapScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_36c776" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTextBlock_da0335" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_a9b88c" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTextBlock_da0335" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfOtherAssetsTableTextBlock" xlink:label="loc_us-gaapScheduleOfOtherAssetsTableTextBlock_6cf9c6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_a9b88c" xlink:to="loc_us-gaapScheduleOfOtherAssetsTableTextBlock_6cf9c6" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="loc_us-gaapScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_15bd66" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_a9b88c" xlink:to="loc_us-gaapScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_15bd66" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfDebtTableTextBlock" xlink:label="loc_us-gaapScheduleOfDebtTableTextBlock_6125b9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_a9b88c" xlink:to="loc_us-gaapScheduleOfDebtTableTextBlock_6125b9" order="7" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsTables" xlink:title="995456 - Disclosure - Leasing Arrangements (Tables)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeasingArrangementsAbstract" xlink:label="loc_tssiLeasingArrangementsAbstract_d1efee" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="loc_us-gaapLeaseCostTableTextBlock_308497" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_d1efee" xlink:to="loc_us-gaapLeaseCostTableTextBlock_308497" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ScheduleOfOperatingLeaseInformationTableTextBlock" xlink:label="loc_tssiScheduleOfOperatingLeaseInformationTableTextBlock_4fff4b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_d1efee" xlink:to="loc_tssiScheduleOfOperatingLeaseInformationTableTextBlock_4fff4b" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="loc_us-gaapScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_9176b8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_d1efee" xlink:to="loc_us-gaapScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock_9176b8" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareTables" xlink:title="995457 - Disclosure - Earnings Per-Share (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract_3d7146" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="loc_us-gaapScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_fb74d5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_3d7146" xlink:to="loc_us-gaapScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_fb74d5" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingTables" xlink:title="995458 - Disclosure - Segment Reporting (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaapSegmentReportingAbstract_794e39" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="loc_us-gaapScheduleOfSegmentReportingInformationBySegmentTextBlock_04948d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_794e39" xlink:to="loc_us-gaapScheduleOfSegmentReportingInformationBySegmentTextBlock_04948d" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails" xlink:title="995459 - Disclosure - Significant Accounting Policies (Details)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="loc_tssiSignificantAccountingPoliciesAbstract_14d433" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_20ce98" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_14d433" xlink:to="loc_us-gaapStatementTable_20ce98" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_a5e74d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_20ce98" xlink:to="loc_us-gaapStatementLineItems_a5e74d" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="loc_srtProductOrServiceAxis_3d5cd5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_20ce98" xlink:to="loc_srtProductOrServiceAxis_3d5cd5" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srtProductsAndServicesDomain_813a97" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtProductOrServiceAxis_3d5cd5" xlink:to="loc_srtProductsAndServicesDomain_813a97" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis_f13174" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_20ce98" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis_f13174" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_13e698" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis_f13174" xlink:to="loc_us-gaapSegmentDomain_13e698" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MaintenanceMember" xlink:label="loc_us-gaapMaintenanceMember_b44387" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtProductsAndServicesDomain_813a97" xlink:to="loc_us-gaapMaintenanceMember_b44387" order="41" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FacilitiesSegmentMember" xlink:label="loc_tssiFacilitiesSegmentMember_e66264" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_13e698" xlink:to="loc_tssiFacilitiesSegmentMember_e66264" order="42" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_IntegrationServicesMember" xlink:label="loc_tssiIntegrationServicesMember_435c1b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtProductsAndServicesDomain_813a97" xlink:to="loc_tssiIntegrationServicesMember_435c1b" order="43" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SystemIntegrationServicesSegmentMember" xlink:label="loc_tssiSystemIntegrationServicesSegmentMember_1e74d3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_13e698" xlink:to="loc_tssiSystemIntegrationServicesSegmentMember_1e74d3" order="44" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementServicesMember" xlink:label="loc_tssiProcurementServicesMember_9f4a7c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtProductsAndServicesDomain_813a97" xlink:to="loc_tssiProcurementServicesMember_9f4a7c" order="45" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementRevenuesSegmentMember" xlink:label="loc_tssiProcurementRevenuesSegmentMember_a25e74" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_13e698" xlink:to="loc_tssiProcurementRevenuesSegmentMember_a25e74" order="46" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_EquipmentDeploymentAndOtherServicesMember" xlink:label="loc_tssiEquipmentDeploymentAndOtherServicesMember_1eedd6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtProductsAndServicesDomain_813a97" xlink:to="loc_tssiEquipmentDeploymentAndOtherServicesMember_1eedd6" order="47" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax_4128ed" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a5e74d" xlink:to="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax_4128ed" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails1" xlink:title="995460 - Disclosure - Significant Accounting Policies (Details 1)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="loc_tssiSignificantAccountingPoliciesAbstract_b81ef4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_3bdd3a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_b81ef4" xlink:to="loc_us-gaapStatementTable_3bdd3a" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_6705e9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_3bdd3a" xlink:to="loc_us-gaapStatementLineItems_6705e9" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis_7032d9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_3bdd3a" xlink:to="loc_srtMajorCustomersAxis_7032d9" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_700a28" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis_7032d9" xlink:to="loc_srtNameOfMajorCustomerDomain_700a28" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis_194e3a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_3bdd3a" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis_194e3a" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain_f0c046" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis_194e3a" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain_f0c046" order="40" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_USBasedITOEMCompanyMember" xlink:label="loc_tssiUSBasedITOEMCompanyMember_29becd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_700a28" xlink:to="loc_tssiUSBasedITOEMCompanyMember_29becd" order="41" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenuesMember" xlink:label="loc_tssiRevenuesMember_062624" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain_f0c046" xlink:to="loc_tssiRevenuesMember_062624" order="42" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConcentrationRiskPercentages" xlink:label="loc_tssiConcentrationRiskPercentages_fffd47" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_6705e9" xlink:to="loc_tssiConcentrationRiskPercentages_fffd47" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails2" xlink:title="995461 - Disclosure - Significant Accounting Policies (Details 2)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="loc_tssiSignificantAccountingPoliciesAbstract_2ebd19" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_AggregateGrossAmountFactored" xlink:label="loc_tssiAggregateGrossAmountFactored_8c5f45" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_2ebd19" xlink:to="loc_tssiAggregateGrossAmountFactored_8c5f45" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="loc_us-gaapPaymentsOfFinancingCosts_11b771" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_2ebd19" xlink:to="loc_us-gaapPaymentsOfFinancingCosts_11b771" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails3" xlink:title="995462 - Disclosure - Significant Accounting Policies (Details 3)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="loc_tssiSignificantAccountingPoliciesAbstract_6936a1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_8ce62f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_6936a1" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_8ce62f" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="loc_us-gaapValuationAllowancesAndReservesChargedToCostAndExpense_cdcd0f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_6936a1" xlink:to="loc_us-gaapValuationAllowancesAndReservesChargedToCostAndExpense_cdcd0f" order="2" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RecoveryOfAmountsPreviouslyReserved" xlink:label="loc_tssiRecoveryOfAmountsPreviouslyReserved_362f86" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_6936a1" xlink:to="loc_tssiRecoveryOfAmountsPreviouslyReserved_362f86" order="3" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_AmountsWrittenOff" xlink:label="loc_tssiAmountsWrittenOff_4d595a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_6936a1" xlink:to="loc_tssiAmountsWrittenOff_4d595a" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_eb2f97" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_6936a1" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_eb2f97" order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative" xlink:title="995463 - Disclosure - Significant Accounting Policies (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SignificantAccountingPoliciesAbstract" xlink:label="loc_tssiSignificantAccountingPoliciesAbstract_f07ea6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_71290a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSignificantAccountingPoliciesAbstract_f07ea6" xlink:to="loc_us-gaapStatementTable_71290a" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_921222" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_71290a" xlink:to="loc_us-gaapStatementLineItems_921222" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis_7b693a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_71290a" xlink:to="loc_srtMajorCustomersAxis_7b693a" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_baba92" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis_7b693a" xlink:to="loc_srtNameOfMajorCustomerDomain_baba92" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis_04c33e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_71290a" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis_04c33e" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain_41bdde" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis_04c33e" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain_41bdde" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="loc_srtProductOrServiceAxis_11d71a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_71290a" xlink:to="loc_srtProductOrServiceAxis_11d71a" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srtProductsAndServicesDomain_c52eae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtProductOrServiceAxis_11d71a" xlink:to="loc_srtProductsAndServicesDomain_c52eae" order="30" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_USBasedITOEMCompanyMember" xlink:label="loc_tssiUSBasedITOEMCompanyMember_fb3b89" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_baba92" xlink:to="loc_tssiUSBasedITOEMCompanyMember_fb3b89" order="31" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenuesMember" xlink:label="loc_tssiRevenuesMember_6b3fb7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain_41bdde" xlink:to="loc_tssiRevenuesMember_6b3fb7" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaapAccountsReceivableMember_e42119" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain_41bdde" xlink:to="loc_us-gaapAccountsReceivableMember_e42119" order="33" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_MaintenanceContractsObligationsMember" xlink:label="loc_tssiMaintenanceContractsObligationsMember_2add6a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtProductsAndServicesDomain_c52eae" xlink:to="loc_tssiMaintenanceContractsObligationsMember_2add6a" order="34" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementAndIntegrationServicesMember" xlink:label="loc_tssiProcurementAndIntegrationServicesMember_c5523d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtProductsAndServicesDomain_c52eae" xlink:to="loc_tssiProcurementAndIntegrationServicesMember_c5523d" order="35" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_UnrestrictedCashBalance" xlink:label="loc_tssiUnrestrictedCashBalance_4b0502" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_tssiUnrestrictedCashBalance_4b0502" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_AllowanceForDoubtfulAccounts" xlink:label="loc_tssiAllowanceForDoubtfulAccounts_ec8880" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_tssiAllowanceForDoubtfulAccounts_ec8880" order="2" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashDepositInAMoneyMarketAccount" xlink:label="loc_tssiCashDepositInAMoneyMarketAccount_a922c0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_tssiCashDepositInAMoneyMarketAccount_a922c0" order="3" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConcentrationRiskPercentageOne" xlink:label="loc_tssiConcentrationRiskPercentageOne_d4960c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_tssiConcentrationRiskPercentageOne_d4960c" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="loc_us-gaapContractWithCustomerLiability_4b9a55" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_us-gaapContractWithCustomerLiability_4b9a55" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNoncashExpense" xlink:label="loc_us-gaapOtherNoncashExpense_92ad6d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_us-gaapOtherNoncashExpense_92ad6d" order="6" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_Goodwills" xlink:label="loc_tssiGoodwills_245b63" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_tssiGoodwills_245b63" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenue" xlink:label="loc_us-gaapDeferredRevenue_4db033" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_us-gaapDeferredRevenue_4db033" order="8" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DeferredRevenueRelatedToProcurementServices" xlink:label="loc_tssiDeferredRevenueRelatedToProcurementServices_e5166b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_tssiDeferredRevenueRelatedToProcurementServices_e5166b" order="9" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DeferredRevenueRelatedToIntegrationServices" xlink:label="loc_tssiDeferredRevenueRelatedToIntegrationServices_e4157d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_921222" xlink:to="loc_tssiDeferredRevenueRelatedToIntegrationServices_e4157d" order="10" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails" xlink:title="995464 - Disclosure - Supplemental Balance Sheet Information (Details)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_d18c94" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="loc_us-gaapAccountsReceivableGrossCurrent_66897d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_d18c94" xlink:to="loc_us-gaapAccountsReceivableGrossCurrent_66897d" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivableCurrent_243d40" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_d18c94" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivableCurrent_243d40" order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="loc_us-gaapReceivablesNetCurrent_24a889" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_d18c94" xlink:to="loc_us-gaapReceivablesNetCurrent_24a889" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails1" xlink:title="995465 - Disclosure - Supplemental Balance Sheet Information (Details 1)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_79f9c2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryRawMaterialsAndSupplies" xlink:label="loc_us-gaapInventoryRawMaterialsAndSupplies_f9858d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_79f9c2" xlink:to="loc_us-gaapInventoryRawMaterialsAndSupplies_f9858d" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryWorkInProcess" xlink:label="loc_us-gaapInventoryWorkInProcess_5951ce" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_79f9c2" xlink:to="loc_us-gaapInventoryWorkInProcess_5951ce" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryFinishedGoods" xlink:label="loc_us-gaapInventoryFinishedGoods_d04b0d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_79f9c2" xlink:to="loc_us-gaapInventoryFinishedGoods_d04b0d" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryValuationReserves" xlink:label="loc_us-gaapInventoryValuationReserves_f2d474" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_79f9c2" xlink:to="loc_us-gaapInventoryValuationReserves_f2d474" order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet_451b20" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_79f9c2" xlink:to="loc_us-gaapInventoryNet_451b20" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails2" xlink:title="995466 - Disclosure - Supplemental Balance Sheet Information (Details 2)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_d9479a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_b3035d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_d9479a" xlink:to="loc_us-gaapStatementTable_b3035d" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_6eb761" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b3035d" xlink:to="loc_us-gaapStatementLineItems_6eb761" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="loc_us-gaapFairValueByAssetClassAxis_2d9eea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b3035d" xlink:to="loc_us-gaapFairValueByAssetClassAxis_2d9eea" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain_c7aca3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueByAssetClassAxis_2d9eea" xlink:to="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain_c7aca3" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_ff34b0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b3035d" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_ff34b0" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_5136a9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_ff34b0" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_5136a9" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillMember" xlink:label="loc_us-gaapGoodwillMember_ef2729" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain_c7aca3" xlink:to="loc_us-gaapGoodwillMember_ef2729" order="41" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaapCustomerRelationshipsMember_663920" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_5136a9" xlink:to="loc_us-gaapCustomerRelationshipsMember_663920" order="42" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:label="loc_us-gaapComputerSoftwareIntangibleAssetMember_5e2084" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_5136a9" xlink:to="loc_us-gaapComputerSoftwareIntangibleAssetMember_5e2084" order="43" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross_08f79d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_6eb761" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross_08f79d" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_b780f7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_6eb761" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_b780f7" order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails3" xlink:title="995467 - Disclosure - Supplemental Balance Sheet Information (Details 3)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_586317" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_801b0f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_586317" xlink:to="loc_us-gaapStatementTable_801b0f" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_07e54d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_801b0f" xlink:to="loc_us-gaapStatementLineItems_07e54d" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis_bec2a7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_801b0f" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis_bec2a7" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_61aa94" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis_bec2a7" xlink:to="loc_us-gaapSegmentDomain_61aa94" order="10" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FacilitiesSegmentMember" xlink:label="loc_tssiFacilitiesSegmentMember_81dd1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_61aa94" xlink:to="loc_tssiFacilitiesSegmentMember_81dd1c" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SystemIntegrationServicesSegmentMember" xlink:label="loc_tssiSystemIntegrationServicesSegmentMember_65602b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_61aa94" xlink:to="loc_tssiSystemIntegrationServicesSegmentMember_65602b" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillGross" xlink:label="loc_us-gaapGoodwillGross_df4cc7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_07e54d" xlink:to="loc_us-gaapGoodwillGross_df4cc7" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails4" xlink:title="995468 - Disclosure - Supplemental Balance Sheet Information (Details 4)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_5ec8be" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_ce6fcb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_5ec8be" xlink:to="loc_us-gaapStatementTable_ce6fcb" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_060057" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_ce6fcb" xlink:to="loc_us-gaapStatementLineItems_060057" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_80a8eb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_ce6fcb" xlink:to="loc_us-gaapPlanNameAxis_80a8eb" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_210849" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_80a8eb" xlink:to="loc_us-gaapPlanNameDomain_210849" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis_f76e1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_ce6fcb" xlink:to="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis_f76e1c" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_6b6054" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis_f76e1c" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_6b6054" order="40" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_BottomMember" xlink:label="loc_tssiBottomMember_a19ad9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_210849" xlink:to="loc_tssiBottomMember_a19ad9" order="41" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="loc_us-gaapLeaseholdImprovementsMember_2a49fd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_6b6054" xlink:to="loc_us-gaapLeaseholdImprovementsMember_2a49fd" order="42" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TopMember" xlink:label="loc_tssiTopMember_335663" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_210849" xlink:to="loc_tssiTopMember_335663" order="43" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ComputerEquipmentAndSoftwareMember" xlink:label="loc_tssiComputerEquipmentAndSoftwareMember_43b17e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_6b6054" xlink:to="loc_tssiComputerEquipmentAndSoftwareMember_43b17e" order="44" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TradeEquipmentMember" xlink:label="loc_tssiTradeEquipmentMember_1dc2ad" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_6b6054" xlink:to="loc_tssiTradeEquipmentMember_1dc2ad" order="45" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FurnitureAndFixtureMember" xlink:label="loc_tssiFurnitureAndFixtureMember_d4865f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_6b6054" xlink:to="loc_tssiFurnitureAndFixtureMember_d4865f" order="46" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConstructionInProcessMember" xlink:label="loc_tssiConstructionInProcessMember_436c53" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_6b6054" xlink:to="loc_tssiConstructionInProcessMember_436c53" order="47" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="loc_us-gaapFurnitureAndFixturesMember_694be0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_6b6054" xlink:to="loc_us-gaapFurnitureAndFixturesMember_694be0" order="48" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaapPropertyPlantAndEquipmentGross_fa4545" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_060057" xlink:to="loc_us-gaapPropertyPlantAndEquipmentGross_fa4545" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_c5c68b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_060057" xlink:to="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_c5c68b" order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet_9f719a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_060057" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet_9f719a" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_PropertyPlantAndEquipmentEstimatedUsefulLife" xlink:label="loc_tssiPropertyPlantAndEquipmentEstimatedUsefulLife_1f39c5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_060057" xlink:to="loc_tssiPropertyPlantAndEquipmentEstimatedUsefulLife_1f39c5" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails5" xlink:title="995469 - Disclosure - Supplemental Balance Sheet Information (Details 5)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_4bc865" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestCostsCapitalized" xlink:label="loc_us-gaapInterestCostsCapitalized_9e3336" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_4bc865" xlink:to="loc_us-gaapInterestCostsCapitalized_9e3336" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails6" xlink:title="995470 - Disclosure - Supplemental Balance Sheet Information (Details 6)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_8e03b9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepositsAssets" xlink:label="loc_us-gaapDepositsAssets_6ad54f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_8e03b9" xlink:to="loc_us-gaapDepositsAssets_6ad54f" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OtherNonCurrentAssetsNet" xlink:label="loc_tssiOtherNonCurrentAssetsNet_eae00f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_8e03b9" xlink:to="loc_tssiOtherNonCurrentAssetsNet_eae00f" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="loc_us-gaapOtherAssetsNoncurrent_cb7926" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_8e03b9" xlink:to="loc_us-gaapOtherAssetsNoncurrent_cb7926" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails7" xlink:title="995471 - Disclosure - Supplemental Balance Sheet Information (Details 7)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_4dcf9b" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent_0cb7f6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_4dcf9b" xlink:to="loc_us-gaapAccountsPayableCurrent_0cb7f6" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaapAccruedLiabilitiesCurrent_0a7de3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_4dcf9b" xlink:to="loc_us-gaapAccruedLiabilitiesCurrent_0a7de3" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="loc_us-gaapEmployeeRelatedLiabilitiesCurrent_952741" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_4dcf9b" xlink:to="loc_us-gaapEmployeeRelatedLiabilitiesCurrent_952741" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="loc_us-gaapOtherAccruedLiabilitiesCurrent_d9c6e9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_4dcf9b" xlink:to="loc_us-gaapOtherAccruedLiabilitiesCurrent_d9c6e9" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:label="loc_us-gaapAccountsPayableAndAccruedLiabilitiesCurrent_2c6e73" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_4dcf9b" xlink:to="loc_us-gaapAccountsPayableAndAccruedLiabilitiesCurrent_2c6e73" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails8" xlink:title="995472 - Disclosure - Supplemental Balance Sheet Information (Details 8)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_ef1d2c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements" xlink:label="loc_us-gaapBorrowingsUnderGuaranteedInvestmentAgreements_1f1e69" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_ef1d2c" xlink:to="loc_us-gaapBorrowingsUnderGuaranteedInvestmentAgreements_1f1e69" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedAmortizationDeferredFinanceCosts" xlink:label="loc_us-gaapAccumulatedAmortizationDeferredFinanceCosts_ad5f88" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_ef1d2c" xlink:to="loc_us-gaapAccumulatedAmortizationDeferredFinanceCosts_ad5f88" order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="loc_us-gaapLongTermDebtNoncurrent_5fa259" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_ef1d2c" xlink:to="loc_us-gaapLongTermDebtNoncurrent_5fa259" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative" xlink:title="995473 - Disclosure - Supplemental Balance Sheet Information (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SupplementalBalanceSheetInformationAbstract" xlink:label="loc_tssiSupplementalBalanceSheetInformationAbstract_569827" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ContractAssetsIncludesAccountsReceivable" xlink:label="loc_tssiContractAssetsIncludesAccountsReceivable_b1a10d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_569827" xlink:to="loc_tssiContractAssetsIncludesAccountsReceivable_b1a10d" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherDepreciationAndAmortization" xlink:label="loc_us-gaapOtherDepreciationAndAmortization_7a4eae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_569827" xlink:to="loc_us-gaapOtherDepreciationAndAmortization_7a4eae" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit_c868a5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiSupplementalBalanceSheetInformationAbstract_569827" xlink:to="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit_c868a5" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/LongTermDebtDetailsNarrative" xlink:title="995474 - Disclosure - Long Term Debt (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtAbstract" xlink:label="loc_us-gaapLongTermDebtAbstract_c2a162" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_e71aa4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLongTermDebtAbstract_c2a162" xlink:to="loc_us-gaapStatementTable_e71aa4" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_1de6bf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e71aa4" xlink:to="loc_us-gaapStatementLineItems_1de6bf" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="loc_us-gaapCreditFacilityAxis_02383e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e71aa4" xlink:to="loc_us-gaapCreditFacilityAxis_02383e" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="loc_us-gaapCreditFacilityDomain_4bfa4a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCreditFacilityAxis_02383e" xlink:to="loc_us-gaapCreditFacilityDomain_4bfa4a" order="20" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CreditAgreementMember" xlink:label="loc_tssiCreditAgreementMember_367979" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCreditFacilityDomain_4bfa4a" xlink:to="loc_tssiCreditAgreementMember_367979" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="loc_us-gaapProceedsFromOtherDebt_9e4331" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_us-gaapProceedsFromOtherDebt_9e4331" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfOtherLongTermDebt" xlink:label="loc_us-gaapRepaymentsOfOtherLongTermDebt_a1cf6f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_us-gaapRepaymentsOfOtherLongTermDebt_a1cf6f" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfOtherDebt" xlink:label="loc_us-gaapRepaymentsOfOtherDebt_6ef257" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_us-gaapRepaymentsOfOtherDebt_6ef257" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="loc_us-gaapDebtInstrumentInterestRateEffectivePercentage_349aff" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_us-gaapDebtInstrumentInterestRateEffectivePercentage_349aff" order="4" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FloorInterestRatePerAnnumOfDebt" xlink:label="loc_tssiFloorInterestRatePerAnnumOfDebt_c6ce43" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_tssiFloorInterestRatePerAnnumOfDebt_c6ce43" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Cash" xlink:label="loc_us-gaapCash_b5dc6d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_us-gaapCash_b5dc6d" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtAverageAmountOutstanding" xlink:label="loc_us-gaapLongTermDebtAverageAmountOutstanding_29f72e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_us-gaapLongTermDebtAverageAmountOutstanding_29f72e" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="loc_us-gaapLineOfCreditFacilityRemainingBorrowingCapacity_465ff5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_us-gaapLineOfCreditFacilityRemainingBorrowingCapacity_465ff5" order="8" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DefaultInterestRatePerAnnumOfDebt" xlink:label="loc_tssiDefaultInterestRatePerAnnumOfDebt_3dc0fd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_tssiDefaultInterestRatePerAnnumOfDebt_3dc0fd" order="9" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CreditAgreementDescription" xlink:label="loc_tssiCreditAgreementDescription_a89e8a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_tssiCreditAgreementDescription_a89e8a" order="10" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LineOfCreditFacilityMinimumLiquidityThreshold" xlink:label="loc_tssiLineOfCreditFacilityMinimumLiquidityThreshold_ecbb73" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_tssiLineOfCreditFacilityMinimumLiquidityThreshold_ecbb73" order="11" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeverageRatioDescription" xlink:label="loc_tssiLeverageRatioDescription_bc90c3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_tssiLeverageRatioDescription_bc90c3" order="12" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement" xlink:label="loc_tssiLineOfCreditFacilityCurrentBorrowingCapacityIncrement_41b391" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1de6bf" xlink:to="loc_tssiLineOfCreditFacilityCurrentBorrowingCapacityIncrement_41b391" order="13" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetails" xlink:title="995475 - Disclosure - Leasing Arrangements (Details)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeasingArrangementsAbstract" xlink:label="loc_tssiLeasingArrangementsAbstract_05a838" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod" xlink:label="loc_tssiOperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod_d39af0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_05a838" xlink:to="loc_tssiOperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod_d39af0" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_VariableLeaseCost" xlink:label="loc_us-gaapVariableLeaseCost_bbbe8c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_05a838" xlink:to="loc_us-gaapVariableLeaseCost_bbbe8c" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseCost" xlink:label="loc_us-gaapOperatingLeaseCost_6c9e71" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_05a838" xlink:to="loc_us-gaapOperatingLeaseCost_6c9e71" order="3" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TotalOperatingLeaseCost" xlink:label="loc_tssiTotalOperatingLeaseCost_57e52b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_05a838" xlink:to="loc_tssiTotalOperatingLeaseCost_57e52b" order="4" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OperatingLeaseRightOfUseAssets" xlink:label="loc_tssiOperatingLeaseRightOfUseAssets_d2396e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_05a838" xlink:to="loc_tssiOperatingLeaseRightOfUseAssets_d2396e" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeasePayments" xlink:label="loc_us-gaapOperatingLeasePayments_37af92" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_05a838" xlink:to="loc_us-gaapOperatingLeasePayments_37af92" order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="loc_us-gaapOperatingLeaseWeightedAverageDiscountRatePercent_227408" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_05a838" xlink:to="loc_us-gaapOperatingLeaseWeightedAverageDiscountRatePercent_227408" order="7" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetails1" xlink:title="995476 - Disclosure - Leasing Arrangements (Details 1)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeasingArrangementsAbstract" xlink:label="loc_tssiLeasingArrangementsAbstract_f9bf10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_9504c3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_9504c3" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo_db171f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo_db171f" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree_08b2aa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree_08b2aa" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour_c3aecb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour_c3aecb" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive_eb5755" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive_eb5755" order="5" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" xlink:label="loc_tssiLesseeOperatingLeaseLiabilityPaymentsDueYearSix_f6a2d5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_tssiLesseeOperatingLeaseLiabilityPaymentsDueYearSix_f6a2d5" order="6" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="loc_tssiLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_9ba155" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_tssiLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_9ba155" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue_754279" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue_754279" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount_7374ce" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount_7374ce" order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability_1dd6d0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapOperatingLeaseLiability_1dd6d0" order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_b09fcf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_b09fcf" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_f88be1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_f88be1" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CapitalLeasesFutureMinimumPaymentsDue" xlink:label="loc_us-gaapCapitalLeasesFutureMinimumPaymentsDue_889fa4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_f9bf10" xlink:to="loc_us-gaapCapitalLeasesFutureMinimumPaymentsDue_889fa4" order="13" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetailsNarrative" xlink:title="995477 - Disclosure - Leasing Arrangements (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeasingArrangementsAbstract" xlink:label="loc_tssiLeasingArrangementsAbstract_d8fe7e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_e7cdcb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tssiLeasingArrangementsAbstract_d8fe7e" xlink:to="loc_us-gaapStatementTable_e7cdcb" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_64663d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e7cdcb" xlink:to="loc_us-gaapStatementLineItems_64663d" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_7c0c83" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e7cdcb" xlink:to="loc_us-gaapPlanNameAxis_7c0c83" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_61fac1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_7c0c83" xlink:to="loc_us-gaapPlanNameDomain_61fac1" order="10" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_BottomMember" xlink:label="loc_tssiBottomMember_7d140d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_61fac1" xlink:to="loc_tssiBottomMember_7d140d" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TopMember" xlink:label="loc_tssiTopMember_9c8ea2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_61fac1" xlink:to="loc_tssiTopMember_9c8ea2" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OperatingLeaseRemainingLeaseTerm" xlink:label="loc_tssiOperatingLeaseRemainingLeaseTerm_bd5932" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_64663d" xlink:to="loc_tssiOperatingLeaseRemainingLeaseTerm_bd5932" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareDetails" xlink:title="995478 - Disclosure - Earnings Per-Share (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract_92eb40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_b445ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_92eb40" xlink:to="loc_us-gaapStatementTable_b445ec" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_be5f52" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b445ec" xlink:to="loc_us-gaapStatementLineItems_be5f52" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaapIncomeStatementLocationAxis_5a0c2d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b445ec" xlink:to="loc_us-gaapIncomeStatementLocationAxis_5a0c2d" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain_576b6c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationAxis_5a0c2d" xlink:to="loc_us-gaapIncomeStatementLocationDomain_576b6c" order="20" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_BasicNetIncomePerShareMember" xlink:label="loc_tssiBasicNetIncomePerShareMember_98aff5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationDomain_576b6c" xlink:to="loc_tssiBasicNetIncomePerShareMember_98aff5" order="21" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DilutedNetIncomePerShareMember" xlink:label="loc_tssiDilutedNetIncomePerShareMember_807883" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationDomain_576b6c" xlink:to="loc_tssiDilutedNetIncomePerShareMember_807883" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic_5a9e62" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_be5f52" xlink:to="loc_us-gaapEarningsPerShareBasic_5a9e62" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAttributableToParentDiluted" xlink:label="loc_us-gaapNetIncomeLossAttributableToParentDiluted_3d9da9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_be5f52" xlink:to="loc_us-gaapNetIncomeLossAttributableToParentDiluted_3d9da9" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_f82aa4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_be5f52" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_f82aa4" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_3b5a72" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_be5f52" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_3b5a72" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToCallOptionsAndWarrants_abdc7b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_be5f52" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToCallOptionsAndWarrants_abdc7b" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted_d65757" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_be5f52" xlink:to="loc_us-gaapEarningsPerShareDiluted_d65757" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareDetailsNarrative" xlink:title="995479 - Disclosure - Earnings Per-Share (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract_caa913" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_35bdaa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_caa913" xlink:to="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_35bdaa" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails" xlink:title="995480 - Disclosure - Segment Reporting (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaapSegmentReportingAbstract_6f2465" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_bea47a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_6f2465" xlink:to="loc_us-gaapStatementTable_bea47a" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_7767b9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_bea47a" xlink:to="loc_us-gaapStatementLineItems_7767b9" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsAxis" xlink:label="loc_srtConsolidationItemsAxis_004554" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_bea47a" xlink:to="loc_srtConsolidationItemsAxis_004554" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="loc_srtConsolidationItemsDomain_47c0cc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtConsolidationItemsAxis_004554" xlink:to="loc_srtConsolidationItemsDomain_47c0cc" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis_7fc869" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_bea47a" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis_7fc869" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_8a0b31" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis_7fc869" xlink:to="loc_us-gaapSegmentDomain_8a0b31" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingSegmentsMember" xlink:label="loc_us-gaapOperatingSegmentsMember_08027f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtConsolidationItemsDomain_47c0cc" xlink:to="loc_us-gaapOperatingSegmentsMember_08027f" order="31" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FacilitiesSegmentMember" xlink:label="loc_tssiFacilitiesSegmentMember_f89129" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_8a0b31" xlink:to="loc_tssiFacilitiesSegmentMember_f89129" order="32" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementMember" xlink:label="loc_tssiProcurementMember_65fb14" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_8a0b31" xlink:to="loc_tssiProcurementMember_65fb14" order="33" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SystemIntegrationMember" xlink:label="loc_tssiSystemIntegrationMember_e1879c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_8a0b31" xlink:to="loc_tssiSystemIntegrationMember_e1879c" order="34" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues_dd8066" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapRevenues_dd8066" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue_73b667" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapCostOfRevenue_73b667" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit_cc5568" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapGrossProfit_cc5568" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax_67fc92" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax_67fc92" order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization_c66cff" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapDepreciationAndAmortization_c66cff" order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherGeneralExpense" xlink:label="loc_us-gaapOtherGeneralExpense_61ec2c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapOtherGeneralExpense_61ec2c" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense_bdb0bd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapInterestExpense_bdb0bd" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_7e79fd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_7e79fd" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets_b28c15" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_us-gaapAssets_b28c15" order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CapitalExpendituresAssets" xlink:label="loc_tssiCapitalExpendituresAssets_1daf1b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_7767b9" xlink:to="loc_tssiCapitalExpendituresAssets_1daf1b" order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails1" xlink:title="995481 - Disclosure - Segment Reporting (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaapSegmentReportingAbstract_7da921" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossBeforeTax" xlink:label="loc_us-gaapOtherComprehensiveIncomeLossBeforeTax_11959f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_7da921" xlink:to="loc_us-gaapOtherComprehensiveIncomeLossBeforeTax_11959f" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses" xlink:label="loc_tssiLessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses_385469" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_7da921" xlink:to="loc_tssiLessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses_385469" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeExpenseNet" xlink:label="loc_us-gaapInterestIncomeExpenseNet_0e0a20" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_7da921" xlink:to="loc_us-gaapInterestIncomeExpenseNet_0e0a20" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherExpenses" xlink:label="loc_us-gaapOtherExpenses_0237db" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_7da921" xlink:to="loc_us-gaapOtherExpenses_0237db" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes" xlink:label="loc_us-gaapResultsOfOperationsIncomeBeforeIncomeTaxes_7f3f07" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_7da921" xlink:to="loc_us-gaapResultsOfOperationsIncomeBeforeIncomeTaxes_7f3f07" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails2" xlink:title="995482 - Disclosure - Segment Reporting (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaapSegmentReportingAbstract_0481f1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CombinedTotalAssetsIncludedInSegments" xlink:label="loc_tssiCombinedTotalAssetsIncludedInSegments_5bc8dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_0481f1" xlink:to="loc_tssiCombinedTotalAssetsIncludedInSegments_5bc8dd" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapOtherCashEquivalentsAtCarryingValue_1d88d7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_0481f1" xlink:to="loc_us-gaapOtherCashEquivalentsAtCarryingValue_1d88d7" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_PrepaidExpenseAndOtherCurrentAssets" xlink:label="loc_tssiPrepaidExpenseAndOtherCurrentAssets_915035" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_0481f1" xlink:to="loc_tssiPrepaidExpenseAndOtherCurrentAssets_915035" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_PropertyPlantAndEquipmentNetTotal" xlink:label="loc_tssiPropertyPlantAndEquipmentNetTotal_71928d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_0481f1" xlink:to="loc_tssiPropertyPlantAndEquipmentNetTotal_71928d" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_b61163" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_0481f1" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_b61163" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets_2765ef" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_0481f1" xlink:to="loc_us-gaapOtherAssets_2765ef" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets_a06edf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_0481f1" xlink:to="loc_us-gaapAssets_a06edf" order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tssi.com/role/SubsequentEventsDetailsNarrative" xlink:title="995483 - Disclosure - Subsequent Events (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract_aaac29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_dc2b0c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract_aaac29" xlink:to="loc_us-gaapStatementTable_dc2b0c" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_1c71a2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_dc2b0c" xlink:to="loc_us-gaapStatementLineItems_1c71a2" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaapSubsequentEventTypeAxis_04a24f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_dc2b0c" xlink:to="loc_us-gaapSubsequentEventTypeAxis_04a24f" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain_01242c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventTypeAxis_04a24f" xlink:to="loc_us-gaapSubsequentEventTypeDomain_01242c" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaapSubsequentEventMember_da1d56" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventTypeDomain_01242c" xlink:to="loc_us-gaapSubsequentEventMember_da1d56" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConstructionLoan" xlink:label="loc_us-gaapConstructionLoan_07850a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1c71a2" xlink:to="loc_us-gaapConstructionLoan_07850a" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_MonthlyPaymentOfLoanUnderCreditAgreement" xlink:label="loc_tssiMonthlyPaymentOfLoanUnderCreditAgreement_801037" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_1c71a2" xlink:to="loc_tssiMonthlyPaymentOfLoanUnderCreditAgreement_801037" order="2" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>10
<FILENAME>tssi-20250630_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 08/10/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tssi.com/role/Cover" xlink:href="tssi-20250630.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tssi-20250630.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals" xlink:href="tssi-20250630.xsd#ConsolidatedBalanceSheetsParentheticals" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows" xlink:href="tssi-20250630.xsd#UnauditedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPolicies" xlink:href="tssi-20250630.xsd#SignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformation" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformation" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LongTermDebt" xlink:href="tssi-20250630.xsd#LongTermDebt" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangements" xlink:href="tssi-20250630.xsd#LeasingArrangements" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShare" xlink:href="tssi-20250630.xsd#EarningsPerShare" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReporting" xlink:href="tssi-20250630.xsd#SegmentReporting" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SubsequentEvents" xlink:href="tssi-20250630.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesPolicies" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesTables" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationTables" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsTables" xlink:href="tssi-20250630.xsd#LeasingArrangementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareTables" xlink:href="tssi-20250630.xsd#EarningsPerShareTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingTables" xlink:href="tssi-20250630.xsd#SegmentReportingTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails1" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails2" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetails3" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative" xlink:href="tssi-20250630.xsd#SignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails1" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails2" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails3" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails4" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails5" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails5" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails6" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails6" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails7" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails7" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetails8" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetails8" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative" xlink:href="tssi-20250630.xsd#SupplementalBalanceSheetInformationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LongTermDebtDetailsNarrative" xlink:href="tssi-20250630.xsd#LongTermDebtDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetails" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetails1" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/LeasingArrangementsDetailsNarrative" xlink:href="tssi-20250630.xsd#LeasingArrangementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareDetails" xlink:href="tssi-20250630.xsd#EarningsPerShareDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/EarningsPerShareDetailsNarrative" xlink:href="tssi-20250630.xsd#EarningsPerShareDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails" xlink:href="tssi-20250630.xsd#SegmentReportingDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails1" xlink:href="tssi-20250630.xsd#SegmentReportingDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SegmentReportingDetails2" xlink:href="tssi-20250630.xsd#SegmentReportingDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tssi.com/role/SubsequentEventsDetailsNarrative" xlink:href="tssi-20250630.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" arcroleURI="http://xbrl.org/int/dim/arcrole/all" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#notAll" arcroleURI="http://xbrl.org/int/dim/arcrole/notAll" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/Cover" xlink:title="00000001 - Document - Cover Page Information">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="loc_deiCover" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/CondensedConsolidatedBalanceSheets" xlink:title="110200 - Statement - Condensed Consolidated Balance Sheets" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals" xlink:title="110201 - Statement - Consolidated Balance Sheets (Parentheticals)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations" xlink:title="124100 - Statement - Unaudited Consolidated Statements of Operations" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity" xlink:title="148600 - Statement - Unaudited Consolidated Statements of Changes in Stockholders Equity">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapCommonStockMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryCommonSharesMember" xlink:label="loc_tssiTreasuryCommonSharesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_tssiTreasuryCommonSharesMember" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapRetainedEarningsMember" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharesIssued" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquity" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesRestrictedStockAwardGross" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueRestrictedStockAwardGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueRestrictedStockAwardGross" order="4" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStockSharesAcquiredCostMethod" xlink:label="loc_tssiTreasuryStockSharesAcquiredCostMethod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiTreasuryStockSharesAcquiredCostMethod" order="5" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TreasuryStockValuesAcquiredCostMethod" xlink:label="loc_tssiTreasuryStockValuesAcquiredCostMethod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiTreasuryStockValuesAcquiredCostMethod" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetIncomeLoss" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockSharesRetired" xlink:label="loc_us-gaapTreasuryStockSharesRetired" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapTreasuryStockSharesRetired" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockRetiredCostMethodAmount" xlink:label="loc_us-gaapTreasuryStockRetiredCostMethodAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapTreasuryStockRetiredCostMethodAmount" order="12" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows" xlink:title="170000 - Statement - Unaudited Consolidated Statements of Cash Flows" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPolicies" xlink:title="995446 - Disclosure - Significant Accounting Policies" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformation" xlink:title="995447 - Disclosure - Supplemental Balance Sheet Information" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/LongTermDebt" xlink:title="995448 - Disclosure - Long Term Debt" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangements" xlink:title="995449 - Disclosure - Leasing Arrangements" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShare" xlink:title="995450 - Disclosure - Earnings Per-Share" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReporting" xlink:title="995451 - Disclosure - Segment Reporting" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SubsequentEvents" xlink:title="995452 - Disclosure - Subsequent Events" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesPolicies" xlink:title="995453 - Disclosure - Significant Accounting Policies (Policies)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesTables" xlink:title="995454 - Disclosure - Significant Accounting Policies (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationTables" xlink:title="995455 - Disclosure - Supplemental Balance Sheet Information (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsTables" xlink:title="995456 - Disclosure - Leasing Arrangements (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareTables" xlink:title="995457 - Disclosure - Earnings Per-Share (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingTables" xlink:title="995458 - Disclosure - Segment Reporting (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails" xlink:title="995459 - Disclosure - Significant Accounting Policies (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="loc_srtProductOrServiceAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtProductOrServiceAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srtProductsAndServicesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtProductOrServiceAxis" xlink:to="loc_srtProductsAndServicesDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srtProductsAndServicesDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtProductOrServiceAxis" xlink:to="loc_srtProductsAndServicesDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain_10" order="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MaintenanceMember" xlink:label="loc_us-gaapMaintenanceMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtProductsAndServicesDomain" xlink:to="loc_us-gaapMaintenanceMember" order="41" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FacilitiesSegmentMember" xlink:label="loc_tssiFacilitiesSegmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tssiFacilitiesSegmentMember" order="42" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_IntegrationServicesMember" xlink:label="loc_tssiIntegrationServicesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtProductsAndServicesDomain" xlink:to="loc_tssiIntegrationServicesMember" order="43" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SystemIntegrationServicesSegmentMember" xlink:label="loc_tssiSystemIntegrationServicesSegmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tssiSystemIntegrationServicesSegmentMember" order="44" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementServicesMember" xlink:label="loc_tssiProcurementServicesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtProductsAndServicesDomain" xlink:to="loc_tssiProcurementServicesMember" order="45" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementRevenuesSegmentMember" xlink:label="loc_tssiProcurementRevenuesSegmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tssiProcurementRevenuesSegmentMember" order="46" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_EquipmentDeploymentAndOtherServicesMember" xlink:label="loc_tssiEquipmentDeploymentAndOtherServicesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtProductsAndServicesDomain" xlink:to="loc_tssiEquipmentDeploymentAndOtherServicesMember" order="47" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax" order="1" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails1" xlink:title="995460 - Disclosure - Significant Accounting Policies (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtMajorCustomersAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain_10" order="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_USBasedITOEMCompanyMember" xlink:label="loc_tssiUSBasedITOEMCompanyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tssiUSBasedITOEMCompanyMember" order="41" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenuesMember" xlink:label="loc_tssiRevenuesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_tssiRevenuesMember" order="42" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConcentrationRiskPercentages" xlink:label="loc_tssiConcentrationRiskPercentages" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiConcentrationRiskPercentages" order="1" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails2" xlink:title="995461 - Disclosure - Significant Accounting Policies (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetails3" xlink:title="995462 - Disclosure - Significant Accounting Policies (Details 3)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative" xlink:title="995463 - Disclosure - Significant Accounting Policies (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtMajorCustomersAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="loc_srtProductOrServiceAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtProductOrServiceAxis" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srtProductsAndServicesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtProductOrServiceAxis" xlink:to="loc_srtProductsAndServicesDomain" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="loc_srtProductsAndServicesDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtProductOrServiceAxis" xlink:to="loc_srtProductsAndServicesDomain_10" order="50" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_USBasedITOEMCompanyMember" xlink:label="loc_tssiUSBasedITOEMCompanyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tssiUSBasedITOEMCompanyMember" order="31" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_RevenuesMember" xlink:label="loc_tssiRevenuesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_tssiRevenuesMember" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaapAccountsReceivableMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_us-gaapAccountsReceivableMember" order="33" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_MaintenanceContractsObligationsMember" xlink:label="loc_tssiMaintenanceContractsObligationsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtProductsAndServicesDomain" xlink:to="loc_tssiMaintenanceContractsObligationsMember" order="34" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementAndIntegrationServicesMember" xlink:label="loc_tssiProcurementAndIntegrationServicesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtProductsAndServicesDomain" xlink:to="loc_tssiProcurementAndIntegrationServicesMember" order="35" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_UnrestrictedCashBalance" xlink:label="loc_tssiUnrestrictedCashBalance" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiUnrestrictedCashBalance" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_AllowanceForDoubtfulAccounts" xlink:label="loc_tssiAllowanceForDoubtfulAccounts" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiAllowanceForDoubtfulAccounts" order="2" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CashDepositInAMoneyMarketAccount" xlink:label="loc_tssiCashDepositInAMoneyMarketAccount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiCashDepositInAMoneyMarketAccount" order="3" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConcentrationRiskPercentageOne" xlink:label="loc_tssiConcentrationRiskPercentageOne" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiConcentrationRiskPercentageOne" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="loc_us-gaapContractWithCustomerLiability" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapContractWithCustomerLiability" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNoncashExpense" xlink:label="loc_us-gaapOtherNoncashExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherNoncashExpense" order="6" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_Goodwills" xlink:label="loc_tssiGoodwills" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiGoodwills" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenue" xlink:label="loc_us-gaapDeferredRevenue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDeferredRevenue" order="8" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DeferredRevenueRelatedToProcurementServices" xlink:label="loc_tssiDeferredRevenueRelatedToProcurementServices" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiDeferredRevenueRelatedToProcurementServices" order="9" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DeferredRevenueRelatedToIntegrationServices" xlink:label="loc_tssiDeferredRevenueRelatedToIntegrationServices" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiDeferredRevenueRelatedToIntegrationServices" order="10" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails" xlink:title="995464 - Disclosure - Supplemental Balance Sheet Information (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails1" xlink:title="995465 - Disclosure - Supplemental Balance Sheet Information (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails2" xlink:title="995466 - Disclosure - Supplemental Balance Sheet Information (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="loc_us-gaapFairValueByAssetClassAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapFairValueByAssetClassAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapFairValueByAssetClassAxis" xlink:to="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapFairValueByAssetClassAxis" xlink:to="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_10" order="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillMember" xlink:label="loc_us-gaapGoodwillMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:to="loc_us-gaapGoodwillMember" order="41" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="loc_us-gaapCustomerRelationshipsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="loc_us-gaapCustomerRelationshipsMember" order="42" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:label="loc_us-gaapComputerSoftwareIntangibleAssetMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="loc_us-gaapComputerSoftwareIntangibleAssetMember" order="43" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization" order="2" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails3" xlink:title="995467 - Disclosure - Supplemental Balance Sheet Information (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FacilitiesSegmentMember" xlink:label="loc_tssiFacilitiesSegmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tssiFacilitiesSegmentMember" order="11" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SystemIntegrationServicesSegmentMember" xlink:label="loc_tssiSystemIntegrationServicesSegmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tssiSystemIntegrationServicesSegmentMember" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillGross" xlink:label="loc_us-gaapGoodwillGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapGoodwillGross" order="1" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails4" xlink:title="995468 - Disclosure - Supplemental Balance Sheet Information (Details 4)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPlanNameAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPropertyPlantAndEquipmentByTypeAxis" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTypeDomain_10" order="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_BottomMember" xlink:label="loc_tssiBottomMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tssiBottomMember" order="41" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="loc_us-gaapLeaseholdImprovementsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" xlink:to="loc_us-gaapLeaseholdImprovementsMember" order="42" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TopMember" xlink:label="loc_tssiTopMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tssiTopMember" order="43" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ComputerEquipmentAndSoftwareMember" xlink:label="loc_tssiComputerEquipmentAndSoftwareMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" xlink:to="loc_tssiComputerEquipmentAndSoftwareMember" order="44" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TradeEquipmentMember" xlink:label="loc_tssiTradeEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" xlink:to="loc_tssiTradeEquipmentMember" order="45" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FurnitureAndFixtureMember" xlink:label="loc_tssiFurnitureAndFixtureMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" xlink:to="loc_tssiFurnitureAndFixtureMember" order="46" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ConstructionInProcessMember" xlink:label="loc_tssiConstructionInProcessMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" xlink:to="loc_tssiConstructionInProcessMember" order="47" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="loc_us-gaapFurnitureAndFixturesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPropertyPlantAndEquipmentTypeDomain" xlink:to="loc_us-gaapFurnitureAndFixturesMember" order="48" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaapPropertyPlantAndEquipmentGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPropertyPlantAndEquipmentGross" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" order="3" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_PropertyPlantAndEquipmentEstimatedUsefulLife" xlink:label="loc_tssiPropertyPlantAndEquipmentEstimatedUsefulLife" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiPropertyPlantAndEquipmentEstimatedUsefulLife" order="4" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails5" xlink:title="995469 - Disclosure - Supplemental Balance Sheet Information (Details 5)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails6" xlink:title="995470 - Disclosure - Supplemental Balance Sheet Information (Details 6)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails7" xlink:title="995471 - Disclosure - Supplemental Balance Sheet Information (Details 7)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetails8" xlink:title="995472 - Disclosure - Supplemental Balance Sheet Information (Details 8)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative" xlink:title="995473 - Disclosure - Supplemental Balance Sheet Information (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/LongTermDebtDetailsNarrative" xlink:title="995474 - Disclosure - Long Term Debt (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="loc_us-gaapCreditFacilityAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapCreditFacilityAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="loc_us-gaapCreditFacilityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapCreditFacilityAxis" xlink:to="loc_us-gaapCreditFacilityDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="loc_us-gaapCreditFacilityDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapCreditFacilityAxis" xlink:to="loc_us-gaapCreditFacilityDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CreditAgreementMember" xlink:label="loc_tssiCreditAgreementMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapCreditFacilityDomain" xlink:to="loc_tssiCreditAgreementMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="loc_us-gaapProceedsFromOtherDebt" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapProceedsFromOtherDebt" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfOtherLongTermDebt" xlink:label="loc_us-gaapRepaymentsOfOtherLongTermDebt" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapRepaymentsOfOtherLongTermDebt" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfOtherDebt" xlink:label="loc_us-gaapRepaymentsOfOtherDebt" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapRepaymentsOfOtherDebt" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="loc_us-gaapDebtInstrumentInterestRateEffectivePercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDebtInstrumentInterestRateEffectivePercentage" order="4" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FloorInterestRatePerAnnumOfDebt" xlink:label="loc_tssiFloorInterestRatePerAnnumOfDebt" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiFloorInterestRatePerAnnumOfDebt" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Cash" xlink:label="loc_us-gaapCash" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCash" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LongTermDebtAverageAmountOutstanding" xlink:label="loc_us-gaapLongTermDebtAverageAmountOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLongTermDebtAverageAmountOutstanding" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="loc_us-gaapLineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLineOfCreditFacilityRemainingBorrowingCapacity" order="8" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DefaultInterestRatePerAnnumOfDebt" xlink:label="loc_tssiDefaultInterestRatePerAnnumOfDebt" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiDefaultInterestRatePerAnnumOfDebt" order="9" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CreditAgreementDescription" xlink:label="loc_tssiCreditAgreementDescription" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiCreditAgreementDescription" order="10" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LineOfCreditFacilityMinimumLiquidityThreshold" xlink:label="loc_tssiLineOfCreditFacilityMinimumLiquidityThreshold" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiLineOfCreditFacilityMinimumLiquidityThreshold" order="11" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LeverageRatioDescription" xlink:label="loc_tssiLeverageRatioDescription" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiLeverageRatioDescription" order="12" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement" xlink:label="loc_tssiLineOfCreditFacilityCurrentBorrowingCapacityIncrement" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiLineOfCreditFacilityCurrentBorrowingCapacityIncrement" order="13" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetails" xlink:title="995475 - Disclosure - Leasing Arrangements (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetails1" xlink:title="995476 - Disclosure - Leasing Arrangements (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/LeasingArrangementsDetailsNarrative" xlink:title="995477 - Disclosure - Leasing Arrangements (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPlanNameAxis" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain_10" order="30" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_BottomMember" xlink:label="loc_tssiBottomMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tssiBottomMember" order="11" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_TopMember" xlink:label="loc_tssiTopMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tssiTopMember" order="12" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_OperatingLeaseRemainingLeaseTerm" xlink:label="loc_tssiOperatingLeaseRemainingLeaseTerm" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiOperatingLeaseRemainingLeaseTerm" order="1" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareDetails" xlink:title="995478 - Disclosure - Earnings Per-Share (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaapIncomeStatementLocationAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapIncomeStatementLocationAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapIncomeStatementLocationAxis" xlink:to="loc_us-gaapIncomeStatementLocationDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapIncomeStatementLocationAxis" xlink:to="loc_us-gaapIncomeStatementLocationDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_BasicNetIncomePerShareMember" xlink:label="loc_tssiBasicNetIncomePerShareMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeStatementLocationDomain" xlink:to="loc_tssiBasicNetIncomePerShareMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_DilutedNetIncomePerShareMember" xlink:label="loc_tssiDilutedNetIncomePerShareMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeStatementLocationDomain" xlink:to="loc_tssiDilutedNetIncomePerShareMember" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapEarningsPerShareBasic" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAttributableToParentDiluted" xlink:label="loc_us-gaapNetIncomeLossAttributableToParentDiluted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetIncomeLossAttributableToParentDiluted" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToCallOptionsAndWarrants" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToCallOptionsAndWarrants" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapEarningsPerShareDiluted" order="6" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/EarningsPerShareDetailsNarrative" xlink:title="995479 - Disclosure - Earnings Per-Share (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails" xlink:title="995480 - Disclosure - Segment Reporting (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsAxis" xlink:label="loc_srtConsolidationItemsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtConsolidationItemsAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="loc_srtConsolidationItemsDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtConsolidationItemsAxis" xlink:to="loc_srtConsolidationItemsDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ConsolidationItemsDomain" xlink:label="loc_srtConsolidationItemsDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtConsolidationItemsAxis" xlink:to="loc_srtConsolidationItemsDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain_10" order="50" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingSegmentsMember" xlink:label="loc_us-gaapOperatingSegmentsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtConsolidationItemsDomain" xlink:to="loc_us-gaapOperatingSegmentsMember" order="31" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_FacilitiesSegmentMember" xlink:label="loc_tssiFacilitiesSegmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tssiFacilitiesSegmentMember" order="32" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_ProcurementMember" xlink:label="loc_tssiProcurementMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tssiProcurementMember" order="33" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_SystemIntegrationMember" xlink:label="loc_tssiSystemIntegrationMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tssiSystemIntegrationMember" order="34" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapRevenues" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCostOfRevenue" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapGrossProfit" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDepreciationAndAmortization" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherGeneralExpense" xlink:label="loc_us-gaapOtherGeneralExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherGeneralExpense" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapInterestExpense" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssets" order="9" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_CapitalExpendituresAssets" xlink:label="loc_tssiCapitalExpendituresAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiCapitalExpendituresAssets" order="10" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails1" xlink:title="995481 - Disclosure - Segment Reporting (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SegmentReportingDetails2" xlink:title="995482 - Disclosure - Segment Reporting (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tssi.com/role/SubsequentEventsDetailsNarrative" xlink:title="995483 - Disclosure - Subsequent Events (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaapSubsequentEventTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapSubsequentEventTypeAxis" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapSubsequentEventTypeAxis" xlink:to="loc_us-gaapSubsequentEventTypeDomain" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapSubsequentEventTypeAxis" xlink:to="loc_us-gaapSubsequentEventTypeDomain_10" order="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaapSubsequentEventMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSubsequentEventTypeDomain" xlink:to="loc_us-gaapSubsequentEventMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConstructionLoan" xlink:label="loc_us-gaapConstructionLoan" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapConstructionLoan" order="1" />
    <link:loc xlink:type="locator" xlink:href="tssi-20250630.xsd#tssi_MonthlyPaymentOfLoanUnderCreditAgreement" xlink:label="loc_tssiMonthlyPaymentOfLoanUnderCreditAgreement" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tssiMonthlyPaymentOfLoanUnderCreditAgreement" order="2" />
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover - shares<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Aug. 07, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">TSS, INC.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001320760<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">Jun. 30,  2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,364,244<span></span>
</td>
</tr>
<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">001-33627<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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 Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">20-2027651<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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 1</a></td>
<td class="text">1800 Aviation Drive<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressCityOrTown', window );">Entity Address City Or Town</a></td>
<td class="text">Georgetown<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressStateOrProvince', window );">Entity Address State Or Province</a></td>
<td class="text">TX<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressPostalZipCode', window );">Entity Address Postal Zip Code</a></td>
<td class="text">78628<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_CityAreaCode', window );">City Area Code</a></td>
<td class="text">512<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">310-1000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Security 12b Title</a></td>
<td class="text">Common Stock, $.0001 par value<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">TSSI<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_DocumentQuarterlyReport', window );">Document Quarterly Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address Address Line 2</a></td>
<td class="text">Building 1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressAddressLine3', window );">Entity Address Address Line 3</a></td>
<td class="text">Suite 100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an quarterly report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-Q<br> -Number 240<br> -Section 308<br> -Subsection a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentQuarterlyReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine3">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 3 such as an Office Park</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_EntityAddressAddressLine3</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 36,836<span></span>
</td>
<td class="nump">$ 23,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_ReceivablesNetCurrent', window );">Contract and other receivables, net</a></td>
<td class="nump">13,997<span></span>
</td>
<td class="nump">16,203<span></span>
</td>
</tr>
<tr class="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 );">Costs and estimated earnings in excess of billings on uncompleted contracts</a></td>
<td class="nump">4,418<span></span>
</td>
<td class="nump">851<span></span>
</td>
</tr>
<tr class="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, net</a></td>
<td class="nump">14,589<span></span>
</td>
<td class="nump">17,673<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">1,055<span></span>
</td>
<td class="nump">248<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">70,895<span></span>
</td>
<td class="nump">58,197<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">35,288<span></span>
</td>
<td class="nump">8,591<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Lease right-of-use asset</a></td>
<td class="nump">22,939<span></span>
</td>
<td class="nump">24,213<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">780<span></span>
</td>
<td class="nump">780<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCash', window );">Restricted cash</a></td>
<td class="nump">5,000<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_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">4,568<span></span>
</td>
<td class="nump">4,787<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">139,470<span></span>
</td>
<td class="nump">96,568<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current Liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent', window );">Accounts payable and accrued expenses</a></td>
<td class="nump">82,020<span></span>
</td>
<td class="nump">53,340<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueCurrent', window );">Deferred revenues, current</a></td>
<td class="nump">3,333<span></span>
</td>
<td class="nump">2,613<span></span>
</td>
</tr>
<tr class="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 liabilities, current</a></td>
<td class="nump">1,891<span></span>
</td>
<td class="nump">966<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_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">87,244<span></span>
</td>
<td class="nump">56,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_LiabilitiesNoncurrentAbstract', window );"><strong>Non-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_LongTermDebtNoncurrent', window );">Long-term debt, non-current</a></td>
<td class="nump">19,541<span></span>
</td>
<td class="nump">8,200<span></span>
</td>
</tr>
<tr class="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 liabilities, non-current</a></td>
<td class="nump">22,648<span></span>
</td>
<td class="nump">23,540<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueNoncurrent', window );">Deferred revenues, non-current</a></td>
<td class="nump">499<span></span>
</td>
<td class="nump">771<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 non-current liabilities</a></td>
<td class="nump">42,688<span></span>
</td>
<td class="nump">32,511<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">129,932<span></span>
</td>
<td class="nump">89,430<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders' Equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock, $.0001 par value; 1,000 shares authorized; none issued</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $.0001 par value; 49,000 shares authorized; 25,975 and 25,250 issued; 23,740 and 23,107 outstanding at June 30, 2025 and December 31, 2024, respectively</a></td>
<td class="nump">3<span></span>
</td>
<td class="nump">3<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">76,058<span></span>
</td>
<td class="nump">74,200<span></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_tssi_TreasuryStocksCommonValue', window );">Treasury stock, at cost; 1,975 and 1,849 shares at June 30, 2025 and December 31, 2024</a></td>
<td class="num">(10,650)<span></span>
</td>
<td class="num">(6,730)<span></span>
</td>
</tr>
<tr class="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 );">Accumulated deficit</a></td>
<td class="num">(55,873)<span></span>
</td>
<td class="num">(60,335)<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 stockholders' equity</a></td>
<td class="nump">9,538<span></span>
</td>
<td class="nump">7,138<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 stockholders' equity</a></td>
<td class="nump">$ 139,470<span></span>
</td>
<td class="nump">$ 96,568<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_TreasuryStocksCommonValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_TreasuryStocksCommonValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccountsPayableAndAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 values as of the balance sheet date of obligations incurred through that date and due within one year (or the operating cycle, if longer), including liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received, taxes, interest, rent and utilities, accrued salaries and bonuses, payroll taxes and fringe benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (01)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_DeferredRevenueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 and obligation to transfer product and 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/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredRevenueNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 and obligation to transfer product and 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/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-41<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478064/805-740-55-13<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 39<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-39<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 31: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesNoncurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesNoncurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (01)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_RestrictedCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 restricted as to withdrawal or usage. 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(1)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Parentheticals) - $ / shares<br></strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Condensed Consolidated Balance Sheets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common Stock, Par or Stated Value Per Share</a></td>
<td class="nump">$ 0.0001<span></span>
</td>
<td class="nump">$ 0.0001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common Stock, Shares Authorized</a></td>
<td class="nump">49,000,000<span></span>
</td>
<td class="nump">49,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common Stock, Shares, Issued</a></td>
<td class="nump">25,975,000<span></span>
</td>
<td class="nump">25,250,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_CommonStockSharesOutstanding', window );">Common Stock, Shares, Outstanding</a></td>
<td class="nump">23,740,000<span></span>
</td>
<td class="nump">23,107,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_PreferredStockParOrStatedValuePerShare', window );">Preferred Stock, Par or Stated Value Per Share</a></td>
<td class="nump">$ 0.0001<span></span>
</td>
<td class="nump">$ 0.0001<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">1,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</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_TreasuryStockCommonShares', window );">Treasury Stock, Common, Shares</a></td>
<td class="nump">1,975,000<span></span>
</td>
<td class="nump">1,849,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_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares 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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_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_us-gaap_TreasuryStockCommonShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 previously issued common shares repurchased by the issuing entity and held in 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> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockCommonShares</td>
</tr>
<tr>
<td style="padding-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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Unaudited Consolidated Statements of Operations - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_RevenueFromProcurement', window );">Procurement</a></td>
<td class="nump">$ 33,002<span></span>
</td>
<td class="nump">$ 4,914<span></span>
</td>
<td class="nump">$ 123,179<span></span>
</td>
<td class="nump">$ 16,538<span></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_tssi_RevenueFromFacilitiesManagement', window );">Facilities management</a></td>
<td class="nump">1,482<span></span>
</td>
<td class="nump">2,285<span></span>
</td>
<td class="nump">2,780<span></span>
</td>
<td class="nump">4,431<span></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_tssi_RevenueFromSystemIntegration', window );">System integration</a></td>
<td class="nump">9,486<span></span>
</td>
<td class="nump">4,960<span></span>
</td>
<td class="nump">16,970<span></span>
</td>
<td class="nump">7,083<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_Revenues', window );">Total revenues</a></td>
<td class="nump">43,970<span></span>
</td>
<td class="nump">12,159<span></span>
</td>
<td class="nump">142,929<span></span>
</td>
<td class="nump">28,052<span></span>
</td>
</tr>
<tr class="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 revenue</a></td>
<td class="nump">36,155<span></span>
</td>
<td class="nump">7,623<span></span>
</td>
<td class="nump">125,904<span></span>
</td>
<td class="nump">20,802<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">7,815<span></span>
</td>
<td class="nump">4,536<span></span>
</td>
<td class="nump">17,025<span></span>
</td>
<td class="nump">7,250<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpensesAbstract', window );"><strong>Operating expenses:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general and administrative</a></td>
<td class="nump">4,735<span></span>
</td>
<td class="nump">2,719<span></span>
</td>
<td class="nump">9,622<span></span>
</td>
<td class="nump">5,108<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">844<span></span>
</td>
<td class="nump">117<span></span>
</td>
<td class="nump">1,054<span></span>
</td>
<td class="nump">188<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 );">Total operating expenses</a></td>
<td class="nump">5,579<span></span>
</td>
<td class="nump">2,836<span></span>
</td>
<td class="nump">10,676<span></span>
</td>
<td class="nump">5,296<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 );">Income from operations</a></td>
<td class="nump">2,236<span></span>
</td>
<td class="nump">1,700<span></span>
</td>
<td class="nump">6,349<span></span>
</td>
<td class="nump">1,954<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest expense</a></td>
<td class="nump">859<span></span>
</td>
<td class="nump">378<span></span>
</td>
<td class="nump">2,327<span></span>
</td>
<td class="nump">706<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestIncomeOther', window );">Interest income</a></td>
<td class="num">(175)<span></span>
</td>
<td class="num">(106)<span></span>
</td>
<td class="num">(558)<span></span>
</td>
<td class="num">(205)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Pre-tax income</a></td>
<td class="nump">1,552<span></span>
</td>
<td class="nump">1,428<span></span>
</td>
<td class="nump">4,580<span></span>
</td>
<td class="nump">1,453<span></span>
</td>
</tr>
<tr class="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 taxes</a></td>
<td class="nump">69<span></span>
</td>
<td class="nump">26<span></span>
</td>
<td class="nump">118<span></span>
</td>
<td class="nump">36<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 1,483<span></span>
</td>
<td class="nump">$ 1,402<span></span>
</td>
<td class="nump">$ 4,462<span></span>
</td>
<td class="nump">$ 1,417<span></span>
</td>
</tr>
<tr class="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 );">Earnings per common share - Basic</a></td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.19<span></span>
</td>
<td class="nump">$ 0.06<span></span>
</td>
</tr>
<tr class="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 );">Earnings per common share - Diluted</a></td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.17<span></span>
</td>
<td class="nump">$ 0.06<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_RevenueFromFacilitiesManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_RevenueFromFacilitiesManagement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_RevenueFromProcurement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_RevenueFromProcurement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_RevenueFromSystemIntegration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_RevenueFromSystemIntegration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_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> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 interest expense classified as operating and nonoperating. Includes, but is not limited to, cost of borrowing 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> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-24<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483013/835-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestIncomeOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of interest income earned from interest bearing assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestIncomeOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenuesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>16
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Unaudited Consolidated Statements of Changes in Stockholders Equity - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common Stock</div></th>
<th class="th"><div>Treasury Stock</div></th>
<th class="th"><div>Additional Paid-In Capital</div></th>
<th class="th"><div>Retained Earnings (Accumulated Deficit)</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,533<span></span>
</td>
<td class="nump">1,762<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Dec. 31, 2023</a></td>
<td class="nump">$ 3,549<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="nump">$ 2,245<span></span>
</td>
<td class="nump">$ 72,103<span></span>
</td>
<td class="nump">$ 66,311<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross', window );">Restricted stock vested, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">376<span></span>
</td>
<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_StockIssuedDuringPeriodValueRestrictedStockAwardGross', window );">Restricted stock vested, amount</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>
</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_tssi_TreasuryStockSharesAcquiredCostMethod', window );">Treasury shares repurchased, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">120<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_tssi_TreasuryStockValuesAcquiredCostMethod', window );">Treasury shares repurchased, amount</a></td>
<td class="nump">55<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 55<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">150<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">150<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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">15<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">15<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Mar. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,909<span></span>
</td>
<td class="nump">1,882<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Mar. 31, 2024</a></td>
<td class="nump">3,659<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="nump">$ 2,300<span></span>
</td>
<td class="nump">72,253<span></span>
</td>
<td class="nump">66,296<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,533<span></span>
</td>
<td class="nump">1,762<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Dec. 31, 2023</a></td>
<td class="nump">3,549<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="nump">$ 2,245<span></span>
</td>
<td class="nump">72,103<span></span>
</td>
<td class="nump">66,311<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">1,417<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Jun. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24,244<span></span>
</td>
<td class="nump">1,942<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Jun. 30, 2024</a></td>
<td class="nump">5,154<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="nump">$ 2,382<span></span>
</td>
<td class="nump">72,428<span></span>
</td>
<td class="nump">64,894<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Mar. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,909<span></span>
</td>
<td class="nump">1,882<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Mar. 31, 2024</a></td>
<td class="nump">3,659<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="nump">$ 2,300<span></span>
</td>
<td class="nump">72,253<span></span>
</td>
<td class="nump">66,296<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross', window );">Restricted stock vested, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">135<span></span>
</td>
<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_StockIssuedDuringPeriodValueRestrictedStockAwardGross', window );">Restricted stock vested, amount</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>
</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_tssi_TreasuryStockSharesAcquiredCostMethod', window );">Treasury shares repurchased, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">45<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_tssi_TreasuryStockValuesAcquiredCostMethod', window );">Treasury shares repurchased, amount</a></td>
<td class="nump">62<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 62<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">155<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">155<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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">1,402<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,402<span></span>
</td>
</tr>
<tr class="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 );">Stock options exercised, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="nump">15<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 );">Stock options exercised, amount</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 20<span></span>
</td>
<td class="nump">20<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Jun. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24,244<span></span>
</td>
<td class="nump">1,942<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Jun. 30, 2024</a></td>
<td class="nump">5,154<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="nump">$ 2,382<span></span>
</td>
<td class="nump">72,428<span></span>
</td>
<td class="nump">64,894<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Dec. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,250<span></span>
</td>
<td class="nump">1,849<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Dec. 31, 2024</a></td>
<td class="nump">7,138<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">$ 6,730<span></span>
</td>
<td class="nump">74,200<span></span>
</td>
<td class="nump">60,335<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross', window );">Restricted stock vested, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">473<span></span>
</td>
<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_StockIssuedDuringPeriodValueRestrictedStockAwardGross', window );">Restricted stock vested, amount</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>
</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_tssi_TreasuryStockSharesAcquiredCostMethod', window );">Treasury shares repurchased, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">124<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_tssi_TreasuryStockValuesAcquiredCostMethod', window );">Treasury shares repurchased, amount</a></td>
<td class="nump">1,654<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 1,654<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">921<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">921<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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">2,979<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">2,979<span></span>
</td>
</tr>
<tr class="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 );">Stock options exercised, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">70<span></span>
</td>
<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 );">Stock options exercised, amount</a></td>
<td class="nump">7<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">7<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Mar. 31, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,793<span></span>
</td>
<td class="nump">1,973<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Mar. 31, 2025</a></td>
<td class="nump">9,391<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">$ 8,384<span></span>
</td>
<td class="nump">75,128<span></span>
</td>
<td class="nump">57,356<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Dec. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,250<span></span>
</td>
<td class="nump">1,849<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Dec. 31, 2024</a></td>
<td class="nump">7,138<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">$ 6,730<span></span>
</td>
<td class="nump">74,200<span></span>
</td>
<td class="nump">60,335<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">4,462<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Jun. 30, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,975<span></span>
</td>
<td class="nump">1,975<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Jun. 30, 2025</a></td>
<td class="nump">9,538<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">$ 10,650<span></span>
</td>
<td class="nump">76,058<span></span>
</td>
<td class="nump">55,873<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Mar. 31, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,793<span></span>
</td>
<td class="nump">1,973<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Mar. 31, 2025</a></td>
<td class="nump">9,391<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">$ 8,384<span></span>
</td>
<td class="nump">75,128<span></span>
</td>
<td class="nump">57,356<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross', window );">Restricted stock vested, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">279<span></span>
</td>
<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_StockIssuedDuringPeriodValueRestrictedStockAwardGross', window );">Restricted stock vested, amount</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>
</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_tssi_TreasuryStockSharesAcquiredCostMethod', window );">Treasury shares repurchased, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">99<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_tssi_TreasuryStockValuesAcquiredCostMethod', window );">Treasury shares repurchased, amount</a></td>
<td class="nump">2,266<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 2,266<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">930<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">930<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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">1,483<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,483<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesRetired', window );">Treasury shares retired, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">97<span></span>
</td>
<td class="nump">97<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_TreasuryStockRetiredCostMethodAmount', window );">Treasury shares retired, amount</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>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Jun. 30, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,975<span></span>
</td>
<td class="nump">1,975<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Jun. 30, 2025</a></td>
<td class="nump">$ 9,538<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">$ 10,650<span></span>
</td>
<td class="nump">$ 76,058<span></span>
</td>
<td class="nump">$ 55,873<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_TreasuryStockSharesAcquiredCostMethod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_TreasuryStockSharesAcquiredCostMethod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</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_tssi_TreasuryStockValuesAcquiredCostMethod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_TreasuryStockValuesAcquiredCostMethod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross</td>
</tr>
<tr>
<td style="padding-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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 value of stock related to Restricted Stock Awards 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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockRetiredCostMethodAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 of par value, additional paid in capital (APIC) and retained earnings of common and preferred stock retired from treasury when treasury stock is accounted for under the cost method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockRetiredCostMethodAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_TreasuryStockSharesRetired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and preferred stock retired from treasury 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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockSharesRetired</td>
</tr>
<tr>
<td style="padding-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>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Unaudited Consolidated Statements of Cash Flows - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash Flows from Operating Activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 4,462<span></span>
</td>
<td class="nump">$ 1,417<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to net cash provided by (used in) operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">1,054<span></span>
</td>
<td class="nump">188<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">1,851<span></span>
</td>
<td class="nump">305<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForOtherCreditLosses', window );">Provision for inventory reserve</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_AmortizationOfIntangibleAssets', window );">Amortization of debt issuance costs</a></td>
<td class="nump">8<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_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 );">Contract and other receivables</a></td>
<td class="nump">2,206<span></span>
</td>
<td class="num">(3,468)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInUnbilledReceivables', window );">Costs and estimated earnings in excess of billings on uncompleted contracts</a></td>
<td class="num">(3,567)<span></span>
</td>
<td class="nump">786<span></span>
</td>
</tr>
<tr class="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="nump">3,084<span></span>
</td>
<td class="num">(2,596)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other assets</a></td>
<td class="num">(679)<span></span>
</td>
<td class="num">(286)<span></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_tssi_IncreaseDecreaseInRightOfUseAsset', window );">Right-of-use assets</a></td>
<td class="nump">1,274<span></span>
</td>
<td class="nump">272<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities', window );">Accounts payable and accrued expenses</a></td>
<td class="nump">26,799<span></span>
</td>
<td class="num">(669)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenue', window );">Deferred revenues</a></td>
<td class="nump">448<span></span>
</td>
<td class="nump">2,634<span></span>
</td>
</tr>
<tr class="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 );">Operating lease liabilities</a></td>
<td class="nump">33<span></span>
</td>
<td class="num">(265)<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_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by (used in) operating activities</a></td>
<td class="nump">36,973<span></span>
</td>
<td class="num">(1,682)<span></span>
</td>
</tr>
<tr class="ro">
<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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireProductiveAssets', window );">Capital expenditures</a></td>
<td class="num">(25,779)<span></span>
</td>
<td class="num">(1,721)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(25,779)<span></span>
</td>
<td class="num">(1,721)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash Flows from Financing Activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt', window );">Proceeds from issuance of long-term debt</a></td>
<td class="nump">11,333<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_ProceedsFromStockOptionsExercised', window );">Proceeds from exercise of stock options</a></td>
<td class="nump">7<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_PaymentsForRepurchaseOfCommonStock', window );">Repurchase of treasury stock</a></td>
<td class="num">(3,920)<span></span>
</td>
<td class="num">(117)<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 (used in) financing activities</a></td>
<td class="nump">7,420<span></span>
</td>
<td class="num">(117)<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect', window );">Net increase (decrease) in cash, cash equivalents and restricted cash</a></td>
<td class="nump">18,614<span></span>
</td>
<td class="num">(3,520)<span></span>
</td>
</tr>
<tr class="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, cash equivalents and restricted cash, beginning of period</a></td>
<td class="nump">23,222<span></span>
</td>
<td class="nump">11,831<span></span>
</td>
</tr>
<tr class="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, cash equivalents and restricted cash, end of period</a></td>
<td class="nump">36,836<span></span>
</td>
<td class="nump">8,311<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental disclosures of cash flow information:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Cash paid for interest, net of amounts capitalized</a></td>
<td class="nump">2,327<span></span>
</td>
<td class="nump">537<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Cash paid for taxes</a></td>
<td class="nump">201<span></span>
</td>
<td class="nump">79<span></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_tssi_CashAndCashEquivalentsBeginningOfPeriod', window );">Cash and cash equivalents, beginning of period</a></td>
<td class="nump">23,222<span></span>
</td>
<td class="nump">11,831<span></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_tssi_RestrictedCashBeginningOfPeriod', window );">Restricted cash, beginning of period</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods', window );">Cash, cash equivalents and restricted cash, beginning of periods</a></td>
<td class="nump">23,222<span></span>
</td>
<td class="nump">11,831<span></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_tssi_CashAndCashEquivalentsEndOfPeriod', window );">Cash and cash equivalents, end of period</a></td>
<td class="nump">36,836<span></span>
</td>
<td class="nump">8,311<span></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_tssi_RestrictedCashEndOfPeriod', window );">Restricted cash, end of period</a></td>
<td class="nump">5,000<span></span>
</td>
<td class="nump">0<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_tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods', window );">Cash, cash equivalents and restricted cash, end of periods</a></td>
<td class="nump">41,836<span></span>
</td>
<td class="nump">8,311<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract', window );"><strong>Supplemental non-cash investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable', window );">Additions to capital expenditures financed with accounts payable</a></td>
<td class="nump">$ 1,881<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_tssi_CashAndCashEquivalentsBeginningOfPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_CashAndCashEquivalentsBeginningOfPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_CashAndCashEquivalentsEndOfPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_CashAndCashEquivalentsEndOfPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_IncreaseDecreaseInRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_IncreaseDecreaseInRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_RestrictedCashBeginningOfPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_RestrictedCashBeginningOfPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_RestrictedCashEndOfPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_RestrictedCashEndOfPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding effect from change in exchange rate, of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-23<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-22<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncreaseDecreaseInDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -SubTopic 20<br> -Topic 842<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_IncreaseDecreaseInUnbilledReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of the amount of revenue for work performed for which billing has not occurred, net of uncollectible 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/otherTransitionRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInUnbilledReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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 activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncashInvestingAndFinancingItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireProductiveAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 purchases of and capital improvements on property, plant and equipment (capital expenditures), software, and other intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480060/805-50-25-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480027/805-50-30-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480027/805-50-30-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireProductiveAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromIssuanceOfSeniorLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a borrowing with the highest claim on the assets of the entity in case of bankruptcy or liquidation (with maturities initially due after one year or beyond the 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> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ProvisionForOtherCreditLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 related to credit loss from transactions other than loan and lease transactions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForOtherCreditLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>18
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_InsiderTradingArrLineItems', window );"><strong>Insider Trading Arragements [Line Items]</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_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arragement Adopted [Flag]</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arragement Terminated [Flag]</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non Rule 10b5-1 Arragement Adopted [Flag]</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non Rule 10b5-1 Arragement Terminated [Flag]</a></td>
<td class="text">false<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_InsiderTradingArrLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_InsiderTradingArrLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SignificantAccountingPoliciesAbstract', window );"><strong>Significant Accounting Policies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Significant Accounting Policies</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 1 </strong>&#8211;<strong> Significant Accounting Policies</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong><em>Description of Business</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">TSS, Inc. ("TSS&#8221;, the "Company&#8221;, "we&#8221;, "us&#8221; or "our&#8221;) provides a comprehensive suite of services for the planning, design, deployment, maintenance and refresh of end-user and enterprise systems, including the mission-critical facilities in which they are housed. We provide a single source solution for enabling technologies in data centers, operations centers, network facilities, server rooms, security operations centers, communications facilities and the infrastructure systems that are critical to their function. Our services consist of technology consulting, design and engineering, project management, systems integration, systems installation, facilities management and IT procurement services. Beginning in 2024, our systems integration services have been enhanced to include integration of Artificial Intelligence (AI) enabled data center server racks.&#160; TSS was incorporated in Delaware in December 2004.&#160; We recently relocated our corporate offices and primary integration facility from Round Rock, Texas to Georgetown, Texas and continue to operate a second integration facility at our former corporate office in Round Rock, Texas.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The preparation of the condensed consolidated financial statements in accordance with accounting principles generally accepted in the United States of America ("U. S. GAAP&#8221;) requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenues and expenses and related disclosure of contingent assets and liabilities. On an ongoing basis, we evaluate our estimates which are based on historical experience and on various other assumptions that we believe are reasonable under the circumstances, the results of which form a basis for making judgments about the carrying value of assets and liabilities that are not readily apparent from other sources. Actual results may differ from these estimates under different assumptions or conditions; however, we believe that our estimates are reasonable and that the actual results will not vary significantly from the estimated amounts.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Basis of Presentation</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The accompanying condensed consolidated balance sheet as of December 31, 2024, which has been derived from audited consolidated financial statements, and the unaudited interim condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#8220;GAAP&#8221;) for interim financial statements and pursuant to the rules and regulations of the SEC for interim reporting and include the accounts of the Company and its consolidated subsidiaries. In the opinion of management, the accompanying unaudited condensed consolidated financial statements contain all adjustments (consisting only of normal recurring items) necessary to present fairly the consolidated financial position of the Company and its consolidated results of operations, changes in stockholders&#8217; equity and cash flows. These interim condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and accompanying notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Certain prior year amounts have been reclassified to conform to the current presentation.&#160; The reclassifications are:&#160; (i) on our statements of operations, we now present revenues from each individual segment whereas the prior year revenues were all presented on a single line item; (ii) on our statements of operations, we now present interest expense and interest income separately whereas we presented a single amount &#8220;interest expense, net&#8221; in the prior year presentation and (iii) we recast the segment disclosures to present our procurement services as a separate segment consistent with the current year presentation whereas those results were aggregated into the systems integration segment in the prior year presentation.&#160; These reclassifications had no net effect on our reported results of operations, financial position or cash flows.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Principles of Consolidation</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The condensed consolidated financial statements include the accounts of the Company and its wholly owned subsidiary. All intercompany accounts and transactions have been eliminated in consolidation.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Financial Instruments</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The Company&#8217;s financial instruments consist primarily of cash and cash equivalents, including money market accounts, and debt.&#160;<em> </em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Based primarily on the short-term nature of cash and cash equivalents, we estimate that their carrying amount approximates their fair value at June 30, 2025 and December 31, 2024.&#160; We consider the fair value of our cash and cash equivalents, including money market accounts, to be measured using Level 1 inputs.&#160; &#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As it does not have a quoted market price and its term extends beyond a year, requiring more judgment, we consider our debt balance to be measured using Level 2 inputs.&#160; As the debt bears a floating interest rate that is adjusted frequently in line with movements in prevailing interest rates that would be used to discount any future cash flows, we estimate that its carrying value approximates its fair value.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Accounting for Business Combinations</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We allocate the purchase price of an acquired business to its identifiable assets and liabilities based on estimated fair values. The excess of the purchase price over the fair value of the assets acquired and liabilities assumed, if any, is recorded as goodwill.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We use all available information to estimate fair values. We typically engage outside appraisal firms to assist in the fair value determination of identifiable intangible assets such as customer contracts, leases, and any other significant assets or liabilities and contingent consideration. Preliminary purchase price allocation is adjusted, as necessary, up to one year after the acquisition closing date if management obtains more information regarding asset valuations and liabilities assumed.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Revenue Recognition</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We recognize revenues when control of the promised goods or services is transferred to our customers in an amount that reflects the consideration we expect to be entitled to in exchange for those goods or services.&#160; Some of our contracts with customers contain multiple performance obligations. For these contracts, we account for individual performance obligations separately if they are distinct. The transaction price is allocated to the separate performance obligations based on relative stand-alone selling prices.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Maintenance services</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate maintenance services revenues from fees that provide our customers with as-needed maintenance and repair services on modular data centers during the contract term. Our contract terms typically are one year in duration, are billed annually in advance, and are non-cancelable. As a result, we record deferred revenue (a contract liability) and recognize revenue from these services ratably over the contract term. We can mitigate our exposure to credit losses by discontinuing services in the event of non-payment.&#160;However, our history of non-payments and bad debt expenses has been insignificant.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Integration services</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate integration services revenues by providing our customers with customized systems and rack-level integration services. We recognize revenue upon shipment to the customer of the completed systems as this is when we have completed our services and when the customer obtains control of the promised goods.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Pursuant to a multi-year agreement signed in 2024, we also recognize revenue monthly at contractually based amounts for certain billable fixed and facility costs and trained staffing levels to support the weekly quantity of AI-enabled racks, with staffing fees reduced for any under-staffing. The fee for staffing is based on defined services as transferred to the customer and are not variable consideration because the customer&#8217;s usage is known weekly and is not contingent on the occurrence of any future events or subject to any estimation.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We typically extend credit terms to our integration customers based on their creditworthiness and generally do not receive advance payments. As such, we record accounts receivable at the time of shipment, when our right to the consideration becomes unconditional. Accounts receivable from our integration customers are typically due within 30-105 days of invoicing. An allowance for credit losses is provided based on a periodic analysis of individual account balances, including an evaluation of days outstanding, payment history, recent payment trends, and our assessment of our customers&#8217; creditworthiness. Our allowance for credit losses was $21,000 and $7,000 on June 30, 2025 and December 31, 2024, respectively.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Equipment and Material sales</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues under fixed price contracts from the sale of data center and related ancillary equipment or materials to customers in the United States. We recognize revenue when the product is shipped to the customer as that is when the customer obtains control of the promised goods and when we have completed our contractual obligations. Typically, we do not receive advance payments for equipment or material sales; however, if we do, we record the advance payment as deferred revenues. Normally we record accounts receivable at the time of shipment, when our right to the consideration has become unconditional. Accounts receivable from our equipment and material sales are typically due within 30-45 days of invoicing.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Deployment and Other services</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues from fees we charge our customers for other services, including repairs or other services not covered under maintenance contracts; installation and servicing of equipment, including modular data centers; and other fixed-price services including repair, design and project management services, or the moving of equipment to a different location. In some cases, we arrange for a third party to perform &#8220;break-fix&#8221; and servicing of equipment upon customer request, and in these instances, we recognize revenue as the amount of any fees or commissions to which we expect to be entitled. Other services are typically invoiced upon completion of services or completion of milestones. We record accounts receivable at the time of completion when our right to consideration becomes unconditional.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Procurement services</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues from fees we charge our customers to procure third-party hardware, software and professional services on their behalf, some of which are then used in our integration services as we integrate these components to deliver a completed system to our customer. We recognize our procurement services revenues upon completion of the procurement activity. For any procurement activities in which we somehow transform the product, the revenues recognized on these transactions are the gross sales amount of the transaction, and we recognize offsetting costs of sales for any costs we incur to procure the related goods (&#8220;gross deals&#8221;).&#160; In some cases, we arrange for the purchase of third-party hardware, software or professional services that are to be provided directly to our customers by another party, we have no control of the goods before they are transferred to the customer and we do not transform the product in any way. In these instances, we are acting as an agent in the transaction and recognize revenue on a net basis, recording only the amount of any fee or commissions to which we expect to be entitled after paying the other party for the goods or services provided to the customer (&#8220;net deals&#8221;). Accounts receivable from our procurement activities are typically due within 80 days of invoicing.&#160; The majority of the procurement activities generally involve us transforming the product, and as such the majority of these transactions are recorded gross.&#160; In order to accelerate the time period in which we receive payment, we generally factor the procurement services receivables utilizing a program that we estimate has an effective annualized interest rate below the rate at which we could borrow funds.&#160; Regardless of whether the transaction is recorded as a gross deal or a net deal, the interest we are charged through the factoring program is based on the gross value of each transaction.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table presents our revenues disaggregated by reportable segment and by product or service type (in &#8217;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">FACILITIES MANAGEMENT:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Maintenance revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,026</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,293</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,899</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,598</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Equipment sales, deployment and other services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">456</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">992</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">881</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,833</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Facilities Management revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,482</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,285</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,780</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,431</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SYSTEMS INTEGRATION:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Integration services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">9,486</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,960</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,670</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">7,083</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Systems Integration revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,486</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,960</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,970</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,083</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">PROCUREMENT:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Procurement services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">33,002</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,914</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Procurement revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">33,002</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,914</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">TOTAL REVENUES</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">43,970</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">12,159</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">142,929</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">28,052</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Judgments</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We consider several factors in determining that control transfers to the customer upon shipment of equipment or upon completion of our services. These factors include that legal title transfers to the customer, we have a present right to payment, and the customer has assumed the risks and rewards of ownership at the time of shipment or completion of the services.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Sales taxes</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Sales (and similar) taxes that are imposed on our sales and collected from customers are excluded from revenues.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Shipping and handling costs</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Costs for shipping and handling activities, including those activities that occur subsequent to transfer of control to the customer, are recorded as cost of revenues and are expensed as incurred. We accrue costs for shipping and handling activities that occur after control of the promised good or service has been transferred to the customer.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Deferred Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Remaining performance obligations include deferred revenue and amounts we expect to receive for goods and services that have not yet been delivered or provided under existing, non-cancellable contracts. For contracts that have an original duration of one year or less, we have elected the practical expedient applicable to such contracts and we do not disclose the transaction price for remaining performance obligations at the end of each reporting period and when we expect to recognize this revenue. As of June 30, 2025, deferred revenue of $3,832,000 includes:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$2,459,000 of our remaining performance obligations for our maintenance contracts, all of which are expected to be recognized within one year, and</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$1,373,000 relates to procurement and integration services where we have yet to complete our services for our customers. Of the deferred revenues related to procurement and integration services,</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="width:12%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">o</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$874,000 is expected to be recognized within one year, and</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">o</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$499,000 is expected to be recognized beyond one year.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Contract liabilities consisting of deferred revenues were $3,384,000 on December 31, 2024, and $3,370,000 on December 31, 2023.&#160; Substantially all of the recorded deferred revenues at December 31, 2024 and December 31, 2023 had been earned and recorded as revenues in the six month periods ended June 30, 2025 and June 30, 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Concentration of Credit Risk </em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We are currently economically dependent upon our relationship with a large US-based IT OEM (Original Equipment Manufacturer). If this relationship is unsuccessful or discontinues, our business and revenue will suffer. The loss of or a significant reduction in orders from this customer or the failure to provide adequate products or services to it would significantly reduce our revenue.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following customer accounted for a significant percentage of our revenues for the periods shown:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">US-based IT OEM</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">98</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">97</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">99</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">97</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">No other customers represented more than 10% of our revenues for any period presented. Our US-based IT OEM customer represented 98% of our accounts receivable at both June 30, 2025 and December 31, 2024. No other customer represented more than 10% of our accounts receivable at either of those dates.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Non-recourse factoring</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have entered into a factoring agreement with a financial institution to sell certain of our accounts receivable from a US-based IT OEM customer under a non-recourse agreement. Due to the extended payment terms from that customer, we use this factoring arrangement as the effective interest rate implicit in this arrangement is less than the rate at which we could borrow the funds to carry those receivables through their due date.&#160; Under the arrangement, we sell certain trade receivables on a non-recourse basis and account for the transaction as a sale of the receivable. The financial institution assumes the full risk of collection, without recourse to the Company in the event of a loss. Debtors are directed to send payments directly to the financial institution. The applicable receivables are removed from our consolidated balance sheet when we receive the cash proceeds. We do not service any factored accounts after the factoring has occurred. We utilize this factoring arrangement as part of our financing for working capital. The table below presents information relevant to this factoring program (in $&#8217;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Aggregate gross amount factored</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">72,391</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,835</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">193,484</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">50,978</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Financing fees paid</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">882</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">427</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,425</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">742</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Financing fees were recorded as interest expense in our consolidated statements of operations or in deferred costs if the interest related to projects for which revenue has not yet been recognized. The total amounts factored exceed our total recorded revenues, as the factoring fees apply to the gross value of receivables collected through the program, while we record only our agent fee on procurement contracts as revenue for any procurement activity that is shipped directly from third parties to the end customer.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Stock-Based Compensation</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Stock-based compensation is measured at the grant date based on the fair value of the award and is recognized as expense ratably over the requisite service period, net of estimated forfeitures. For awards with performance-based vesting criteria, we recognize expense only once it is deemed probable that the performance criteria will be met.&#160; We award shares of restricted stock and stock options to employees, managers, executive officers, and directors for both incentive and retention purposes.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">During the three-month and six-month periods ended June 30, 2025, we incurred approximately $0.9 million and $1.9 million, respectively, of non-cash stock-based compensation expense.&#160; In the comparable three-month and six-month prior year periods ended June 30, 2024, we incurred approximately $0.2 million and $0.3 million, respectively, of non-cash stock-based compensation expense.&#160; In each period, the expense was included in selling, general and administrative expenses in the accompanying Condensed Consolidated Statements of Operations<em>.</em>&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Cash, cash equivalents, and restricted cash</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Cash and cash equivalents are comprised of cash in banks and highly liquid instruments with original maturities of three months or less, primarily consisting of bank time deposits. We had unrestricted cash of $36.8 million and $18.2 million, almost all of which was beyond FDIC insured limits on June 30, 2025 and December 31, 2024, respectively.&#160; At each of those dates, we additionally had $5.0 million of restricted cash in a money market account held by our bank as collateral for our outstanding bank debt, which also exceeded FDIC insured limits.&#160; Under the terms of the loan agreement, we can at any point request that the bank apply the deposit as a reduction of loan principal.&#160; This balance is presented separately on our balance sheet at June 30, 2025 and was classified with cash and cash equivalents at December 31, 2024.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Contract and Other Receivables</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Accounts receivables are recorded at the invoiced amount and may bear interest in the event of late payment under certain contracts.&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Allowance for Credit Losses</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We estimate an allowance for credit losses based on estimated credit losses, based on factors related to the specific credit risk of each customer. Historically our credit losses have been minimal. We perform credit evaluations of new customers and may require prepayments or the use of bank instruments such as trade letters of credit to mitigate credit risk. We monitor outstanding amounts to limit our credit exposure to individual accounts. We continue to pursue collection even if we have fully provided for an account balance.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table summarizes the changes in our allowance for credit losses (in &#8217;000):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Additions charged to expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Recovery of amounts previously reserved</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Amounts written off</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">21</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Inventories</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Inventories are stated at the lower of cost or net realizable value. Cost is determined using the first-in, first-out method for all purchased inventories. We write down obsolete inventory or inventory more than our estimated usage to its estimated realizable value less cost to sell, if less than its cost. Inherent in our estimates of net realizable value in determining inventory valuation are estimates related to future demand and technological obsolescence of our products. Any significant unanticipated changes in demand or technological developments could have a significant impact on the value of our inventories and our results of operations and financial position could be materially affected.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Property and Equipment</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Property and equipment are recorded at cost, including interest incurred during the construction phase of assets financed at least partly with debt. We provide for depreciation using the straight-line method over the estimated useful lives of the assets. Additions and major replacements or improvements are capitalized, while minor replacements and maintenance costs are charged to expense as incurred. Depreciation expense is included in operating expenses in the consolidated statements of operations. The cost and accumulated depreciation of assets sold or retired are removed from the accounts and any gain or loss is included in the results of operations for the period of the transaction.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Goodwill and Intangible Assets</em>&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have recorded goodwill and intangible assets with definite lives, including customer relationships and acquired software, in conjunction with the acquisition of various businesses. These intangible assets are amortized based on their estimated economic lives. Goodwill represents the excess of the purchase price over the fair value of net identified tangible and intangible assets acquired and liabilities assumed, and it is not amortized. The recorded goodwill is allocated to the reporting unit to which the underlying transaction relates.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">U. S. GAAP requires us to perform an impairment test of goodwill on an annual basis or whenever events or circumstances make it more likely than not that impairment of goodwill may have occurred. As part of the annual impairment test, we review for indicators of impairment as &#8220;Step Zero&#8221; of the annual impairment test as defined by U.S. GAAP and if any exist, we compare the fair value of the reporting unit with its carrying amount. If that fair value exceeds the carrying amount, no impairment charge is required to be recorded. If the carrying value exceeds the reporting unit&#8217;s fair value, we would recognize a goodwill impairment charge for the amount by which the carrying amount exceeds the reporting unit&#8217;s fair value. However, the impairment loss recognized cannot exceed the total amount of goodwill allocated to that reporting unit. If necessary, the fair value of a reporting unit will be determined using a discounted cash flow analysis, which requires the use of estimates and assumptions. Significant assumptions that may be required include forecasted operating results and the determination of an appropriate discount rate. Actual results may differ from forecasted results, which may have a material impact on the conclusions reached.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We also review intangible assets with definite lives for impairment whenever events or circumstances indicate that the carrying amount may not be recoverable. If the sum of the expected undiscounted cash flows is less than the carrying value of the related asset, a loss is recognized for the difference between the fair value and carrying value of the intangible asset.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have elected to use December 31 as our annual assessment date. As circumstances change that could affect the recoverability of the carrying amount of the assets during an interim period, we will evaluate our indefinite lived intangible assets for impairment.&#160;At our most recent annual assessment date of December 31, 2024, we identified no such indicators of impairment and determined there was no impairment at that date.&#160; In the quarter ended June 30, 2025, we considered relevant matters including macroeconomic and other conditions on our operations and noted no material triggering events or circumstances that occurred during that period that would indicate the carrying value of our goodwill or other long-lived intangible assets was impaired.&#160; On June 30, 2025 and December 31, 2024, the carrying value of goodwill was $0.8 million.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Income Taxes</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Deferred income taxes are provided for the temporary differences between the financial reporting and tax basis of the Company&#8217;s assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. The U.S. net operating losses generated prior to 2018 and not utilized can be carried forward for 20 years to offset future taxable income. A full valuation allowance has been recorded against our net deferred tax assets, because we have concluded that under relevant accounting standards it is more likely than not that deferred tax assets will not be realizable. We re-evaluate this assessment quarterly and if we determine, after weighing all positive and all negative evidence available at that time, that it is more likely than not that the deferred tax asset will be realizable, we will remove the valuation allowance at that point in time.&#160; As a percentage of our pre-tax earnings, the income tax expense presented on our statement of operations is substantially less than one might normally expect to see, as we are able to utilize our deferred tax asset to offset any current federal income taxes due, and reduce the valuation allowance by an equal amount of the deferred tax asset utilized.&#160; The income tax expense recognized represents state income taxes for which we do not have deferred tax assets to offset&#160; We recognize interest and penalty expense associated with uncertain tax positions as a component of income tax expense in the consolidated statements of operations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Earnings Per-Common Share</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Basic and diluted earnings per share are based on the weighted average number of shares of common stock and potential common stock outstanding during the period. Potential common stock, for the purposes of determining diluted earnings per share, includes the effects of dilutive unvested restricted stock, options to purchase common stock and convertible securities, if any. The effect of such potential common stock is computed using the treasury stock method or the if-converted method, as applicable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Treasury Stock</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We account for treasury shares using the cost method. Purchases of shares of common stock are recorded at cost and result in a reduction of stockholders&#8217; equity. We hold repurchased shares in treasury for general corporate purposes, including issuances under various employee compensation plans and from time to time may retire all or a portion of the treasury shares, reducing the issued and treasury share counts. When treasury shares are issued, we use a weighted average cost method. Purchase costs in excess of reissue price are treated as a reduction of retained earnings. Reissue price more than purchase costs is treated as additional paid-in-capital.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Commitments and Contingencies</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In the ordinary course of business, the Company may be subject to claims, lawsuits, and proceedings. Management evaluates such matters based on available information and, when necessary, records an accrual for estimated losses.&#160; As of June 30, 2025, the Company determined that there were no matters requiring accrual or disclosure as a commitment or contingency under the applicable accounting guidance.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Recent Accounting Guidance</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Recently Adopted Accounting Guidance</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In November 2023, FASB issued Accounting Standards Update ASU No. 2023-07, <em>Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures. </em>("ASU 2023-07&#8221;). ASU 2023-07 improves reportable segment disclosure requirements for public business entities primarily through enhanced disclosures about significant segment expenses that are regularly provided to the chief operating decision-maker and included within each reported measure of segment profit (referred to as the "significant expense principle&#8221;). We adopted this guidance effective for the annual period ended December 31, 2024.&#160; It did not have a material impact on our financial results of operations or financial position, other than the enhanced disclosures.&#160; At the same time as adopting this guidance, we also re-assessed our segmentation and determined we now have three reportable segments whereas we have historically had two reportable segments.&#160; In interim periods after December 31, 2024, the new guidance is now applied retrospectively for all prior periods presented in the financial statements, and prior period segment results are recast to conform to the current year presentation.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Recently Issued Accounting Pronouncements</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In December 2023, FASB issued ASU No. 2023-09, <em>Improvements to Income Tax Disclosures</em> (&#8220;ASU 2023-09&#8221;), which requires that an entity disclose specific categories in the effective tax rate reconciliation as well as provide additional information for reconciling items that meet a quantitative threshold. Further, this ASU requires certain disclosures of state versus federal income tax expense and taxes paid. This ASU is effective for our Annual Report on Form 10-K for the year ending December 31, 2025, with early adoption permitted. We do not expect the adoption of ASU 2023-09 to have a material impact on our financial statements.&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In November 2024, FASB issued ASU 2024-03, <em>Income Statement &#8211; Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40)</em> (&#8220;ASU 2024-03&#8221;), which will require that entities provide more granular footnote disclosures of the details contained in certain captions on the company&#8217;s income statement, such as &#8220;Selling, General and Administrative&#8221; expenses.&#160; This new guidance is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027, with early adoption permitted.&#160; We have not yet determined all the effects that adoption of this new guidance will have on our statement of operations and related footnote disclosures.&#160; We do not expect its adoption to affect our net operating results or financial position.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In July 2025, FASB issued ASU 2025-05, <em>Financial Instruments &#8211; Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets, </em>which provides public companies with a practical expedient in developing reasonable and supportable forecasts as part of estimating expected credit losses. All entities may elect a practical expedient that assumes that current conditions as of the balance sheet date do not change for the remaining life of the asset. Early adoption is permitted. The amendment is effective for annual periods beginning after December 15, 2025, and interim periods within those annual reporting periods. Accordingly, it will first be applicable for our three-month period ending March 31, 2026.&#160; We are currently evaluating the impact of this standard on our consolidated financial statements and related disclosures.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In July 2025, the One Big Beautiful Bill Act (OBBBA) was signed into law. This legislation includes changes to the United States federal tax law, which may be subject to further clarification and the issuance of interpretive guidance. We are currently evaluating the impact of the legislation on our consolidated financial statements.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SignificantAccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SignificantAccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock', window );">Supplemental Balance Sheet Information</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 2 </strong>&#8211;<strong> Supplemental Balance Sheet Information</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Receivables</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Contract and other receivables consisted of the following (in &#8216;000&#8217;s):&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Contract and other receivables</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,018</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,210</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(21 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(7 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Contracts and other receivables, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">13,997</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">16,203</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Contract and other receivables, net were $3,527,000&#160;as of December 31, 2023.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Inventories</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We state inventories at the lower of cost or net realizable value, using the first-in-first-out-method (in &#8216;000&#8217;s) as follows:&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Raw Materials</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">78</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">201</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Work in Process</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">155</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">120</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Finished Goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,377</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,373</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(21</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(21</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventories, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">14,589</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">17,673</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Goodwill and Intangible Assets</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Goodwill and Intangible Assets consisted of the following (in &#8216;000&#8217;s):&#160;&#160;&#160;&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Gross</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Gross</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Carrying</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Carrying</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amortization</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amortization</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Intangible assets not subject to amortization:</em></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Goodwill</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">780</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">780</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Intangible assets subject to amortization:</em></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Customer relationships</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">906</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(906 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">906</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(906 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Acquired software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">234</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(234 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">234</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(234 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Goodwill is attributable to the following reportable segments (in &#8216;000&#8217;s): &#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Facilities Management unit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">643</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">643</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Systems Integration unit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">137</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">137</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">780</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">780</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We recognized no amortization expense related to intangible assets in the three-month or six-month periods ended June 30, 2025 or in the comparable periods of 2024 as all long-lived intangible assets subject to amortization were fully amortized.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Property and Equipment</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Property and equipment consisted of the following (in &#8217;000&#8217;s):</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Estimated Useful Lives</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(years)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Trade equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">5&#8211;10</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,680</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">763</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2&#8211;10</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">29,909</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,328</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">5-7</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">277</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">140</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer equipment and software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">554</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,363</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Construction in Process</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">N/A</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,469</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">6,701</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">37,889</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,295</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less accumulated depreciation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(2,601</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(3,704</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">35,288</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,591</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Depreciation of property and equipment and amortization of leasehold improvements and software totaled $844,000 and $117,000 for the three-month periods ended June 30, 2025 and 2024, respectively. Depreciation of property and equipment and amortization of leasehold improvements and software totaled $1,054,000 and $188,000 for the six-month periods ended June 30, 2025 and 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table presents interest capitalized as property and equipment, as the related debt was used to finance a portion of the capital expenditures (in $000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">107</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">220</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Other Assets</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Other assets, non-current is comprised of the following amounts (in $000&#8217;s):</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deposits</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,109</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,109</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other non-current assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,459</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,678</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at end of year</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,568</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,787</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Accounts Payable and Accrued Expenses</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Accounts payable and accrued expenses consisted of the following (in &#8217;000&#8217;s):&#160;&#160;&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accounts payable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">69,281</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">33,491</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,674</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,802</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Compensation, benefits and related taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,616</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,774</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">449</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">273</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total accounts payable and accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">82,020</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">53,340</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Long-Term Debt</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Long-term debt consisted of the following (in &#8217;000&#8217;s):&#160;&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Borrowed funds (bank loan; see Note 3)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">20,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">8,667</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred debt issuance costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(459 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(467 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-term debt, non-current</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">19,541</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,200</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Amortization of deferred debt issuance costs began in the quarter ended June 30, 2025 once construction was substantially complete.&#160; We amortized $8,000 of the deferred financing costs to interest expense during the quarter ended June 30, 2024, with no such amortization in the prior year period.&#160;&#160;</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/210/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalBalanceSheetDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Long Term Debt<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtAbstract', window );"><strong>Long Term Debt</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_LongTermDebtTextBlock', window );">Long-Term Debt</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 3 - Long-Term Debt </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>&#160;</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In May 2024, we renewed our revolving line of credit (the &#8220;revolving line of credit&#8221;) with Susser Bank (&#8220;Lender&#8221;) pursuant to a Business Loan Agreement (Asset Based) effective May 5, 2024. The obligations under the revolving line of credit were secured by substantially all of our accounts receivable. Our wholly owned subsidiaries jointly and severally guaranteed our obligations under the revolving line of credit. We terminated the revolving line of credit on December 31, 2024 when we entered a new credit agreement with Susser Bank described below.&#160; There were no borrowings outstanding on the revolving credit facility at any point during the periods presented.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">On December 31, 2024, we entered into a new Credit Agreement (the &#8220;Credit Agreement&#8221;) with Susser Bank to fund improvements at the Georgetown, Texas location we leased on December 2, 2024 to which we have now moved our headquarters and the majority of our operations.&#160; The Credit Agreement provides for a $20.0 million term loan facility, and the option for additional incremental term loans of up to $5.0 million (the &#8220;accordion feature&#8221;), pending Lender approval.&#160; Upon closing on December 31, 2024, we borrowed $8.7 million, with $5.0 million of that amount deposited in a required interest-bearing cash collateral account, $3.4 million reimbursed to us for capital expenditures previously funded with our operating cash, and $0.3 million funding loan closing costs.&#160; In the three-month period ended June 30, 2025, we borrowed the remaining $11.3 million of available funds, bringing the total amount borrowed to $20.0 million.&#160; Per its terms, we made interest-only payments through July 5, 2025.&#160; On July 5, 2025, the loan converted to a fully amortizing term loan with a final due date of January 5, 2030 and monthly payments of approximately $437,000 beginning on August 5, 2025.&#160; As the loan bears a floating interest rate, the total payment will fluctuate from time to time with prevailing interest rates.&#160; The loan is secured by a $5.0 million cash deposit held in a money market account with related earnings payable to the Company, and all equipment that is not permanently attached to, and which may be removed from our Georgetown, Texas facility and headquarters building without significantly damaging the leased building.&#160; Interest accrues at a rate per annum equal to 1-month SOFR plus 3.0%, subject to a 4.5% floor.&#160; Upon an event of default, interest would accrue at a rate equal to the normal rate plus 2.0%.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The Credit Agreement includes customary affirmative covenants for secured transactions of this type, including maintaining adequate books and records, periodic financial reporting, compliance with laws, maintenance of insurance, maintenance of assets, timely payment of taxes, and notices of adverse events. It also includes customary negative covenants including incurrence of other indebtedness, mergers, consolidations and transfers of assets and liens on our assets. The Loan Agreement and ancillary documents also include customary events of default, including payment defaults, failure to perform or observe terms, covenants or agreements included in the Loan Agreement and ancillary documents, insolvency and bankruptcy defaults, judgment defaults, material adverse change defaults, and change of ownership defaults.&#160; Financial covenants require us to maintain a leverage ratio, as defined in the agreement, of no more than 3.75x through September 30, 2025; 2.75x from then to September 30, 2026; and 2.00x after that, and a debt service coverage ratio, as defined in the agreement, of at least 1.25x.&#160; We were in compliance with all covenants at June 30, 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As of June 30, 2025, all available funds have been drawn on the $20.0 million loan. If we utilize the accordion feature, we may borrow up to an additional $5.0 million to reimburse us for additional construction costs.&#160; If we were to borrow those additional funds, the loan would be re-amortized using the new principal amount and the original due date.&#160; &#160;&#160;&#160;</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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-term debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 470<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/470/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leasing Arrangements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_LeasingArrangementsAbstract', window );"><strong>Leasing Arrangements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesOfLesseeDisclosureTextBlock', window );">Leasing Arrangements</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 4- Leasing Arrangements</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have operating leases for our office and integration facilities in both Round Rock, Texas and Georgetown, Texas as well as for certain equipment. Our leases have remaining lease terms of 9 to 119 months. As of June 30, 2025, we have not entered into any lease arrangement classified as a finance lease.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We determine if an arrangement is a lease at its inception. Operating leases are included in the lease right-of-use assets, current lease liabilities and lease liabilities, non-current, on our consolidated balance sheets. We have elected an accounting policy to not recognize short-term leases (one year or less) on the balance sheet. We also elected the package of practical expedients which applies to leases that commenced before the adoption date. By electing the package of practical expedients, we did not need to reassess whether any existing contracts are or contain leases, the lease classification for any existing leases and initial direct costs for any existing leases.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Right-of-use assets and operating lease liabilities are recognized based on the present value of future minimum lease payments over the lease term at commencement date. When the implicit rate of the lease is not provided or cannot be determined, we use our incremental borrowing rate based on the information available at the commencement date to determine the present value of future payments. Lease terms may include options to extend or terminate the lease when it is reasonably certain that we will exercise those options. Lease expense for minimum lease payments is recognized on a straight-line basis over the lease term, with variable lease expense recognized in the period in which the costs are incurred. Variable lease expense is comprised of common are maintenance (CAM), property taxes and property insurance.&#160; Components of lease expense and other information is as follows (in &#8216;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease cost:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">973</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">236</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,964</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">457</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Variable lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">202</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">114</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">324</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">227</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total operating lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,175</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">350</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,288</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">684</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash paid for operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">420</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">136</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">656</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">265</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">New right-of-use assets &#8211; operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following presents information regarding the Company's operating leases as of June 30:&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average remaining lease term &#8211;&#160;operating leases (months)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">109</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">56</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average discount rate &#8211;&#160;operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Future minimum lease payments under non-cancellable leases as of June 30, 2025 were as follows (in &#8216;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Fiscal</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Year</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,813</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,662</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,777</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,905</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,265</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2030</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,538</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Thereafter</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,678</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total minimum future lease payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">34,638</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Less imputed interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(10,099 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">24,539</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Reported as of June 30, 2025 (in &#8216;000&#8217;s) :</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current portion of lease liability</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,891</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Non-current portion of lease liability</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">22,648</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">24,539</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_LeasingArrangementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_LeasingArrangementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesOfLesseeDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for lessee entity's leasing arrangements including, but not limited to, all of the following: (a.) The basis on which contingent rental payments are determined, (b.) The existence and terms of renewal or purchase options and escalation clauses, (c.) Restrictions imposed by lease agreements, such as those concerning dividends, additional debt, and further leasing.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 840<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/840/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesOfLesseeDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per-Share<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per-Share</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 );">Net Income Per-Share</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 5 - Earnings Per-Share </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Basic and diluted income per share is based on the weighted average number of shares of common stock and potential common stock outstanding during the period. Potential common stock, for the purpose of determining diluted income per share, includes the effects of dilutive unvested restricted stock, options to purchase common stock and convertible securities. The effect of such potential common stock is computed using the treasury stock method or the if-converted method, as applicable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table presents a reconciliation of the numerators and denominators of the basic and diluted income per share computations for income from continuing operations. In the table below, income represents the numerator, and shares represent the denominator (in thousands except per share amounts):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(unaudited)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(unaudited)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Basic Earnings per share</strong>:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,483</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,402</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,462</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,417</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Weighted-average shares of common stock outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">23,581</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">22,077</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">23,871</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">21,988</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic Earnings per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.19</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Diluted Earnings per share</strong>:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,483</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,402</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,462</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,417</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average shares of common stock outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23,581</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">22,077</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23,871</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">21,988</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Dilutive options and warrants outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,226</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,623</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,368</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,546</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Number of shares used in diluted per-share computation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">25,807</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">24,700</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">26,239</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">23,534</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Earnings per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.17</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">For the three-month periods ended June 30, 2025 and 2024, respectively, 50,000 and 1,566,000 restricted shares and options were excluded from the calculation of dilutive shares because their effect would have been anti-dilutive. For the six-month periods ended June 30, 2025 and 2024, respectively, 50,000 and 2,471,000 restricted shares and options were excluded from the calculation of dilutive shares because their effect would have been anti-dilutive. </p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Reporting<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment Reporting</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 6 - Segment Reporting</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Segment information reported in the tables below represents the operating segments of the Company organized in a manner consistent with which separate information is available and for which segment results are evaluated regularly by our President and CEO, who is our chief operating decision-maker (CODM), in assessing performance, allocating resources and awarding incentive compensation. Prior to the fourth quarter of 2024, our activities were organized and managed in two reportable segments: facilities management and systems integration, with our procurement operating segment aggregated into the systems integration reportable segment. In the fourth quarter of 2024, we reorganized our structure such that our CODM now evaluates our operations and allocates resources on the basis of three segments.&#160; Accordingly, we have determined that we now have three reportable segments as noted below.&#160; Comparable prior period amounts presented have been recast to conform with the current period presentation, including the costs allocated to each reportable segment as provided to our CODM.&#160; Our revenues are substantially all derived from the U.S. market, and all revenues presented are from external customers; we have no intercompany revenues.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The Company&#8217;s reportable segments are as follows: </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Procurement: Assists our customers in procuring third-party hardware, software, and professional services on their behalf that are used in our integration services as we integrate these components to deliver a completed system to our customers. Although this activity drives some of the work done in the systems integration business, its activities and financial results are reviewed separately from the systems integration segment results.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Systems Integration: Integrates IT equipment for OEM vendors and customers to be used inside data center environments, including modular data centers. This includes AI-enabled computer technology as well as more traditional data center equipment. This segment also provides other computer equipment configuration services for our customers.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Facilities Management: Involved in the design, project management and maintenance of data centers and mission-critical business operations.</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The CODM evaluates the performance of the segments based on segment revenue, gross profit and pre-tax income, including the significant expenses presented separately in the table below. Segment results are exclusive of certain activities and expenses that are not allocated to specific segments, and which are reconciled below to our consolidated pre-tax income. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">When present, certain expenses within cost of revenues such as amortization of purchased intangibles and unusual and non-recurring items are not allocated to specific segments. Therefore, these amounts are excluded from segment results and included in consolidated pre-tax income.&#160; Other consolidated assets not specifically attributable to or allocated to business segments are principally cash and cash equivalents, prepaids and deposits, certain fixed assets, and operating lease right-of use assets.&#160; Other operating expenses in the following tables generally represent property taxes, rent and related costs, travel and entertainment, professional fees, office supplies and other similar items utilized by the specific reportable segments but not separately identified in the tables below as none of the costs is individually material.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Information regarding our reportable segments is presented below (in thousands):&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Three Months Ended June 30, 2025:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">33,002</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,486</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,482</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">43,970</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">30,463</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">5,311</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">381</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">36,155</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,539</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,175</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,101</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,815</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">793</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">170</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">963</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">761</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">764</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">343</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">15</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">358</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">756</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">100</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">3</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">859</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,783</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,178</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">910</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,871</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,705</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,705</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Three Months Ended June 30, 2024:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,914</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,960</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,285</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,159</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,201</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,824</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">598</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">7,623</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">713</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,136</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,687</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,536</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">490</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">103</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">593</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">91</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">26</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">117</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">349</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(11</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">338</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">310</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">44</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">22</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">376</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">403</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,162</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,547</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">3,112</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,682</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,682</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Six Months Ended June 30, 2025:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,970</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,780</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">142,929</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">113,612</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">11,144</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,148</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">125,904</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,567</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,826</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,632</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,025</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,624</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">309</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,933</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">940</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">946</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">623</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">24</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">661</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,108</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">202</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">17</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,327</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">7,445</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,437</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,276</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">11,158</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:10pt">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">27,574</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">27,574</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Six Months Ended June 30, 2024:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,083</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,431</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,052</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">14,916</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,343</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,543</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">20,802</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,622</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,740</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,888</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">920</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">232</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,152</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">150</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">38</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">188</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">510</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">515</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">594</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">78</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">32</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">704</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,028</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,082</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,581</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,691</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,721</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,721</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The table below reconciles total segment pre-tax income for each period presented above to consolidated pre-tax income (in thousands):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,871</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,112</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">11,158</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,691</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Unallocated SG&amp;A, depreciation and other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,494</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,790</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,136</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,443</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Plus: Unallocated interest income, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">175</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">106</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">558</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">205</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less other expense (plus other income)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consolidated pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,552</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,428</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,580</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,453</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The table below presents segment total assets for June 30, 2025 and December 31, 2024 (in thousands):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Segment Assets at June 30, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,452</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">38,789</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,773</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">70,014</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Segment Assets at December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,319</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">25,855</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">932</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">46,106</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The table below reconciles combined segment total assets for each period presented above to consolidated total assets (in thousands):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Combined total assets included in segments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">70,014</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">46,106</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Plus items not allocated to segments:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Cash and cash equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">41,836</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23,222</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Prepaid expenses and other current assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,055</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">230</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Property and equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">979</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">29</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">22,939</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">24,213</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Other assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,647</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,768</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Consolidated total assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">139,470</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">96,568</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-15<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 16: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 34<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-34<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/280/tableOfContent<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsAbstract', window );"><strong>Subsequent Events</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><strong>Note 7 &#8211; Subsequent Events</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">On July 5, 2025, the outstanding $20.0 million principal balance on our Credit Agreement, used to finance the build-out of our facility in Georgetown, Texas, converted to a fully amortizing term loan with a final due date of January 5, 2030 and monthly payments of approximately $437,000 beginning on August 5, 2025.&#160; As the loan bears a floating interest rate, the total payment will fluctuate from time to time with prevailing interest rates.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/855/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>26
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SignificantAccountingPoliciesAbstract', window );"><strong>Significant Accounting Policies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Presentation</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The accompanying condensed consolidated balance sheet as of December 31, 2024, which has been derived from audited consolidated financial statements, and the unaudited interim condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#8220;GAAP&#8221;) for interim financial statements and pursuant to the rules and regulations of the SEC for interim reporting and include the accounts of the Company and its consolidated subsidiaries. In the opinion of management, the accompanying unaudited condensed consolidated financial statements contain all adjustments (consisting only of normal recurring items) necessary to present fairly the consolidated financial position of the Company and its consolidated results of operations, changes in stockholders&#8217; equity and cash flows. These interim condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and accompanying notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Certain prior year amounts have been reclassified to conform to the current presentation.&#160; The reclassifications are:&#160; (i) on our statements of operations, we now present revenues from each individual segment whereas the prior year revenues were all presented on a single line item; (ii) on our statements of operations, we now present interest expense and interest income separately whereas we presented a single amount &#8220;interest expense, net&#8221; in the prior year presentation and (iii) we recast the segment disclosures to present our procurement services as a separate segment consistent with the current year presentation whereas those results were aggregated into the systems integration segment in the prior year presentation.&#160; These reclassifications had no net effect on our reported results of operations, financial position or cash flows.&#160; </p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Principles of Consolidation</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The condensed consolidated financial statements include the accounts of the Company and its wholly owned subsidiary. All intercompany accounts and transactions have been eliminated in consolidation.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Financial Instruments</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The Company&#8217;s financial instruments consist primarily of cash and cash equivalents, including money market accounts, and debt.&#160;<em> </em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Based primarily on the short-term nature of cash and cash equivalents, we estimate that their carrying amount approximates their fair value at June 30, 2025 and December 31, 2024.&#160; We consider the fair value of our cash and cash equivalents, including money market accounts, to be measured using Level 1 inputs.&#160; &#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">As it does not have a quoted market price and its term extends beyond a year, requiring more judgment, we consider our debt balance to be measured using Level 2 inputs.&#160; As the debt bears a floating interest rate that is adjusted frequently in line with movements in prevailing interest rates that would be used to discount any future cash flows, we estimate that its carrying value approximates its fair value.&#160; </p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Accounting for Business Combinations</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We allocate the purchase price of an acquired business to its identifiable assets and liabilities based on estimated fair values. The excess of the purchase price over the fair value of the assets acquired and liabilities assumed, if any, is recorded as goodwill.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We use all available information to estimate fair values. We typically engage outside appraisal firms to assist in the fair value determination of identifiable intangible assets such as customer contracts, leases, and any other significant assets or liabilities and contingent consideration. Preliminary purchase price allocation is adjusted, as necessary, up to one year after the acquisition closing date if management obtains more information regarding asset valuations and liabilities assumed.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRecognitionPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We recognize revenues when control of the promised goods or services is transferred to our customers in an amount that reflects the consideration we expect to be entitled to in exchange for those goods or services.&#160; Some of our contracts with customers contain multiple performance obligations. For these contracts, we account for individual performance obligations separately if they are distinct. The transaction price is allocated to the separate performance obligations based on relative stand-alone selling prices.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_MaintenanceServicesPolicyTextBlock', window );">Maintenance services</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate maintenance services revenues from fees that provide our customers with as-needed maintenance and repair services on modular data centers during the contract term. Our contract terms typically are one year in duration, are billed annually in advance, and are non-cancelable. As a result, we record deferred revenue (a contract liability) and recognize revenue from these services ratably over the contract term. We can mitigate our exposure to credit losses by discontinuing services in the event of non-payment.&#160;However, our history of non-payments and bad debt expenses has been insignificant.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_IntegrationServicesPolicyTextBlock', window );">Integration services</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate integration services revenues by providing our customers with customized systems and rack-level integration services. We recognize revenue upon shipment to the customer of the completed systems as this is when we have completed our services and when the customer obtains control of the promised goods.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Pursuant to a multi-year agreement signed in 2024, we also recognize revenue monthly at contractually based amounts for certain billable fixed and facility costs and trained staffing levels to support the weekly quantity of AI-enabled racks, with staffing fees reduced for any under-staffing. The fee for staffing is based on defined services as transferred to the customer and are not variable consideration because the customer&#8217;s usage is known weekly and is not contingent on the occurrence of any future events or subject to any estimation.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We typically extend credit terms to our integration customers based on their creditworthiness and generally do not receive advance payments. As such, we record accounts receivable at the time of shipment, when our right to the consideration becomes unconditional. Accounts receivable from our integration customers are typically due within 30-105 days of invoicing. An allowance for credit losses is provided based on a periodic analysis of individual account balances, including an evaluation of days outstanding, payment history, recent payment trends, and our assessment of our customers&#8217; creditworthiness. Our allowance for credit losses was $21,000 and $7,000 on June 30, 2025 and December 31, 2024, respectively.&#160; </p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_EquipmentAndMaterialSalesPolicyTextBlock', window );">Equipment and Material sales</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues under fixed price contracts from the sale of data center and related ancillary equipment or materials to customers in the United States. We recognize revenue when the product is shipped to the customer as that is when the customer obtains control of the promised goods and when we have completed our contractual obligations. Typically, we do not receive advance payments for equipment or material sales; however, if we do, we record the advance payment as deferred revenues. Normally we record accounts receivable at the time of shipment, when our right to the consideration has become unconditional. Accounts receivable from our equipment and material sales are typically due within 30-45 days of invoicing.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_DeploymentAndOtherServicesPolicyTextBlock', window );">Deployment and Other services</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues from fees we charge our customers for other services, including repairs or other services not covered under maintenance contracts; installation and servicing of equipment, including modular data centers; and other fixed-price services including repair, design and project management services, or the moving of equipment to a different location. In some cases, we arrange for a third party to perform &#8220;break-fix&#8221; and servicing of equipment upon customer request, and in these instances, we recognize revenue as the amount of any fees or commissions to which we expect to be entitled. Other services are typically invoiced upon completion of services or completion of milestones. We record accounts receivable at the time of completion when our right to consideration becomes unconditional.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_ProcurementServicesPolicyTextBlock', window );">Procurement services</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We generate revenues from fees we charge our customers to procure third-party hardware, software and professional services on their behalf, some of which are then used in our integration services as we integrate these components to deliver a completed system to our customer. We recognize our procurement services revenues upon completion of the procurement activity. For any procurement activities in which we somehow transform the product, the revenues recognized on these transactions are the gross sales amount of the transaction, and we recognize offsetting costs of sales for any costs we incur to procure the related goods (&#8220;gross deals&#8221;).&#160; In some cases, we arrange for the purchase of third-party hardware, software or professional services that are to be provided directly to our customers by another party, we have no control of the goods before they are transferred to the customer and we do not transform the product in any way. In these instances, we are acting as an agent in the transaction and recognize revenue on a net basis, recording only the amount of any fee or commissions to which we expect to be entitled after paying the other party for the goods or services provided to the customer (&#8220;net deals&#8221;). Accounts receivable from our procurement activities are typically due within 80 days of invoicing.&#160; The majority of the procurement activities generally involve us transforming the product, and as such the majority of these transactions are recorded gross.&#160; In order to accelerate the time period in which we receive payment, we generally factor the procurement services receivables utilizing a program that we estimate has an effective annualized interest rate below the rate at which we could borrow funds.&#160; Regardless of whether the transaction is recorded as a gross deal or a net deal, the interest we are charged through the factoring program is based on the gross value of each transaction.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table presents our revenues disaggregated by reportable segment and by product or service type (in &#8217;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">FACILITIES MANAGEMENT:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Maintenance revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,026</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,293</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,899</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,598</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Equipment sales, deployment and other services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">456</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">992</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">881</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,833</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Facilities Management revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,482</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,285</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,780</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,431</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SYSTEMS INTEGRATION:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Integration services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">9,486</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,960</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,670</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">7,083</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Systems Integration revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,486</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,960</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,970</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,083</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">PROCUREMENT:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Procurement services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">33,002</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,914</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Procurement revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">33,002</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,914</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">TOTAL REVENUES</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">43,970</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">12,159</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">142,929</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">28,052</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_JudgmentsPolicyTextBlock', window );">Judgments</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We consider several factors in determining that control transfers to the customer upon shipment of equipment or upon completion of our services. These factors include that legal title transfers to the customer, we have a present right to payment, and the customer has assumed the risks and rewards of ownership at the time of shipment or completion of the services.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SalesTaxesPolicyTextBlock', window );">Sales taxes</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Sales (and similar) taxes that are imposed on our sales and collected from customers are excluded from revenues.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShippingAndHandlingCostPolicyTextBlock', window );">Shipping and handling costs</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Costs for shipping and handling activities, including those activities that occur subsequent to transfer of control to the customer, are recorded as cost of revenues and are expensed as incurred. We accrue costs for shipping and handling activities that occur after control of the promised good or service has been transferred to the customer.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRecognitionDeferredRevenue', window );">Deferred Revenue</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Remaining performance obligations include deferred revenue and amounts we expect to receive for goods and services that have not yet been delivered or provided under existing, non-cancellable contracts. For contracts that have an original duration of one year or less, we have elected the practical expedient applicable to such contracts and we do not disclose the transaction price for remaining performance obligations at the end of each reporting period and when we expect to recognize this revenue. As of June 30, 2025, deferred revenue of $3,832,000 includes:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$2,459,000 of our remaining performance obligations for our maintenance contracts, all of which are expected to be recognized within one year, and</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$1,373,000 relates to procurement and integration services where we have yet to complete our services for our customers. Of the deferred revenues related to procurement and integration services,</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="width:12%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">o</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$874,000 is expected to be recognized within one year, and</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">o</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">$499,000 is expected to be recognized beyond one year.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Contract liabilities consisting of deferred revenues were $3,384,000 on December 31, 2024, and $3,370,000 on December 31, 2023.&#160; Substantially all of the recorded deferred revenues at December 31, 2024 and December 31, 2023 had been earned and recorded as revenues in the six month periods ended June 30, 2025 and June 30, 2024, respectively.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentration of Credit Risk</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We are currently economically dependent upon our relationship with a large US-based IT OEM (Original Equipment Manufacturer). If this relationship is unsuccessful or discontinues, our business and revenue will suffer. The loss of or a significant reduction in orders from this customer or the failure to provide adequate products or services to it would significantly reduce our revenue.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following customer accounted for a significant percentage of our revenues for the periods shown:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">US-based IT OEM</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">98</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">97</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">99</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">97</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">No other customers represented more than 10% of our revenues for any period presented. Our US-based IT OEM customer represented 98% of our accounts receivable at both June 30, 2025 and December 31, 2024. No other customer represented more than 10% of our accounts receivable at either of those dates.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_NonRecourseFactoringPolicyTextBlock', window );">Non-recourse factoring</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have entered into a factoring agreement with a financial institution to sell certain of our accounts receivable from a US-based IT OEM customer under a non-recourse agreement. Due to the extended payment terms from that customer, we use this factoring arrangement as the effective interest rate implicit in this arrangement is less than the rate at which we could borrow the funds to carry those receivables through their due date.&#160; Under the arrangement, we sell certain trade receivables on a non-recourse basis and account for the transaction as a sale of the receivable. The financial institution assumes the full risk of collection, without recourse to the Company in the event of a loss. Debtors are directed to send payments directly to the financial institution. The applicable receivables are removed from our consolidated balance sheet when we receive the cash proceeds. We do not service any factored accounts after the factoring has occurred. We utilize this factoring arrangement as part of our financing for working capital. The table below presents information relevant to this factoring program (in $&#8217;000&#8217;s):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Aggregate gross amount factored</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">72,391</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,835</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">193,484</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">50,978</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Financing fees paid</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">882</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">427</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,425</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">742</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Financing fees were recorded as interest expense in our consolidated statements of operations or in deferred costs if the interest related to projects for which revenue has not yet been recognized. The total amounts factored exceed our total recorded revenues, as the factoring fees apply to the gross value of receivables collected through the program, while we record only our agent fee on procurement contracts as revenue for any procurement activity that is shipped directly from third parties to the end customer.&#160; </p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-Based Compensation</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Stock-based compensation is measured at the grant date based on the fair value of the award and is recognized as expense ratably over the requisite service period, net of estimated forfeitures. For awards with performance-based vesting criteria, we recognize expense only once it is deemed probable that the performance criteria will be met.&#160; We award shares of restricted stock and stock options to employees, managers, executive officers, and directors for both incentive and retention purposes.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">During the three-month and six-month periods ended June 30, 2025, we incurred approximately $0.9 million and $1.9 million, respectively, of non-cash stock-based compensation expense.&#160; In the comparable three-month and six-month prior year periods ended June 30, 2024, we incurred approximately $0.2 million and $0.3 million, respectively, of non-cash stock-based compensation expense.&#160; In each period, the expense was included in selling, general and administrative expenses in the accompanying Condensed Consolidated Statements of Operations<em>.</em>&#160; </p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and cash equivalents</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Cash and cash equivalents are comprised of cash in banks and highly liquid instruments with original maturities of three months or less, primarily consisting of bank time deposits. We had unrestricted cash of $36.8 million and $18.2 million, almost all of which was beyond FDIC insured limits on June 30, 2025 and December 31, 2024, respectively.&#160; At each of those dates, we additionally had $5.0 million of restricted cash in a money market account held by our bank as collateral for our outstanding bank debt, which also exceeded FDIC insured limits.&#160; Under the terms of the loan agreement, we can at any point request that the bank apply the deposit as a reduction of loan principal.&#160; This balance is presented separately on our balance sheet at June 30, 2025 and was classified with cash and cash equivalents at December 31, 2024.&#160; </p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TradeAndOtherAccountsReceivablePolicy', window );">Contract and Other Receivables</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Accounts receivables are recorded at the invoiced amount and may bear interest in the event of late payment under certain contracts.&#160;</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy', window );">Allowance for Credit Losses</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We estimate an allowance for credit losses based on estimated credit losses, based on factors related to the specific credit risk of each customer. Historically our credit losses have been minimal. We perform credit evaluations of new customers and may require prepayments or the use of bank instruments such as trade letters of credit to mitigate credit risk. We monitor outstanding amounts to limit our credit exposure to individual accounts. We continue to pursue collection even if we have fully provided for an account balance.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The following table summarizes the changes in our allowance for credit losses (in &#8217;000):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Additions charged to expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Recovery of amounts previously reserved</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Amounts written off</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">21</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Inventories are stated at the lower of cost or net realizable value. Cost is determined using the first-in, first-out method for all purchased inventories. We write down obsolete inventory or inventory more than our estimated usage to its estimated realizable value less cost to sell, if less than its cost. Inherent in our estimates of net realizable value in determining inventory valuation are estimates related to future demand and technological obsolescence of our products. Any significant unanticipated changes in demand or technological developments could have a significant impact on the value of our inventories and our results of operations and financial position could be materially affected.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and Equipment</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Property and equipment are recorded at cost, including interest incurred during the construction phase of assets financed at least partly with debt. We provide for depreciation using the straight-line method over the estimated useful lives of the assets. Additions and major replacements or improvements are capitalized, while minor replacements and maintenance costs are charged to expense as incurred. Depreciation expense is included in operating expenses in the consolidated statements of operations. The cost and accumulated depreciation of assets sold or retired are removed from the accounts and any gain or loss is included in the results of operations for the period of the transaction.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock', window );">Goodwill and Intangible Assets</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have recorded goodwill and intangible assets with definite lives, including customer relationships and acquired software, in conjunction with the acquisition of various businesses. These intangible assets are amortized based on their estimated economic lives. Goodwill represents the excess of the purchase price over the fair value of net identified tangible and intangible assets acquired and liabilities assumed, and it is not amortized. The recorded goodwill is allocated to the reporting unit to which the underlying transaction relates.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">U. S. GAAP requires us to perform an impairment test of goodwill on an annual basis or whenever events or circumstances make it more likely than not that impairment of goodwill may have occurred. As part of the annual impairment test, we review for indicators of impairment as &#8220;Step Zero&#8221; of the annual impairment test as defined by U.S. GAAP and if any exist, we compare the fair value of the reporting unit with its carrying amount. If that fair value exceeds the carrying amount, no impairment charge is required to be recorded. If the carrying value exceeds the reporting unit&#8217;s fair value, we would recognize a goodwill impairment charge for the amount by which the carrying amount exceeds the reporting unit&#8217;s fair value. However, the impairment loss recognized cannot exceed the total amount of goodwill allocated to that reporting unit. If necessary, the fair value of a reporting unit will be determined using a discounted cash flow analysis, which requires the use of estimates and assumptions. Significant assumptions that may be required include forecasted operating results and the determination of an appropriate discount rate. Actual results may differ from forecasted results, which may have a material impact on the conclusions reached.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We also review intangible assets with definite lives for impairment whenever events or circumstances indicate that the carrying amount may not be recoverable. If the sum of the expected undiscounted cash flows is less than the carrying value of the related asset, a loss is recognized for the difference between the fair value and carrying value of the intangible asset.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We have elected to use December 31 as our annual assessment date. As circumstances change that could affect the recoverability of the carrying amount of the assets during an interim period, we will evaluate our indefinite lived intangible assets for impairment.&#160;At our most recent annual assessment date of December 31, 2024, we identified no such indicators of impairment and determined there was no impairment at that date.&#160; In the quarter ended June 30, 2025, we considered relevant matters including macroeconomic and other conditions on our operations and noted no material triggering events or circumstances that occurred during that period that would indicate the carrying value of our goodwill or other long-lived intangible assets was impaired.&#160; On June 30, 2025 and December 31, 2024, the carrying value of goodwill was $0.8 million.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Deferred income taxes are provided for the temporary differences between the financial reporting and tax basis of the Company&#8217;s assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. The U.S. net operating losses generated prior to 2018 and not utilized can be carried forward for 20 years to offset future taxable income. A full valuation allowance has been recorded against our net deferred tax assets, because we have concluded that under relevant accounting standards it is more likely than not that deferred tax assets will not be realizable. We re-evaluate this assessment quarterly and if we determine, after weighing all positive and all negative evidence available at that time, that it is more likely than not that the deferred tax asset will be realizable, we will remove the valuation allowance at that point in time.&#160; As a percentage of our pre-tax earnings, the income tax expense presented on our statement of operations is substantially less than one might normally expect to see, as we are able to utilize our deferred tax asset to offset any current federal income taxes due, and reduce the valuation allowance by an equal amount of the deferred tax asset utilized.&#160; The income tax expense recognized represents state income taxes for which we do not have deferred tax assets to offset&#160; We recognize interest and penalty expense associated with uncertain tax positions as a component of income tax expense in the consolidated statements of operations.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Earnings Per-Common Share</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Basic and diluted earnings per share are based on the weighted average number of shares of common stock and potential common stock outstanding during the period. Potential common stock, for the purposes of determining diluted earnings per share, includes the effects of dilutive unvested restricted stock, options to purchase common stock and convertible securities, if any. The effect of such potential common stock is computed using the treasury stock method or the if-converted method, as applicable.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_TreasuryStockPolicyTextBlock', window );">Treasury Stock</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">We account for treasury shares using the cost method. Purchases of shares of common stock are recorded at cost and result in a reduction of stockholders&#8217; equity. We hold repurchased shares in treasury for general corporate purposes, including issuances under various employee compensation plans and from time to time may retire all or a portion of the treasury shares, reducing the issued and treasury share counts. When treasury shares are issued, we use a weighted average cost method. Purchase costs in excess of reissue price are treated as a reduction of retained earnings. Reissue price more than purchase costs is treated as additional paid-in-capital.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesPolicyTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In the ordinary course of business, the Company may be subject to claims, lawsuits, and proceedings. Management evaluates such matters based on available information and, when necessary, records an accrual for estimated losses.&#160; As of June 30, 2025, the Company determined that there were no matters requiring accrual or disclosure as a commitment or contingency under the applicable accounting guidance.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recent Accounting Guidance</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Recently Adopted Accounting Guidance</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In November 2023, FASB issued Accounting Standards Update ASU No. 2023-07, <em>Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures. </em>("ASU 2023-07&#8221;). ASU 2023-07 improves reportable segment disclosure requirements for public business entities primarily through enhanced disclosures about significant segment expenses that are regularly provided to the chief operating decision-maker and included within each reported measure of segment profit (referred to as the "significant expense principle&#8221;). We adopted this guidance effective for the annual period ended December 31, 2024.&#160; It did not have a material impact on our financial results of operations or financial position, other than the enhanced disclosures.&#160; At the same time as adopting this guidance, we also re-assessed our segmentation and determined we now have three reportable segments whereas we have historically had two reportable segments.&#160; In interim periods after December 31, 2024, the new guidance is now applied retrospectively for all prior periods presented in the financial statements, and prior period segment results are recast to conform to the current year presentation.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"><em>Recently Issued Accounting Pronouncements</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In December 2023, FASB issued ASU No. 2023-09, <em>Improvements to Income Tax Disclosures</em> (&#8220;ASU 2023-09&#8221;), which requires that an entity disclose specific categories in the effective tax rate reconciliation as well as provide additional information for reconciling items that meet a quantitative threshold. Further, this ASU requires certain disclosures of state versus federal income tax expense and taxes paid. This ASU is effective for our Annual Report on Form 10-K for the year ending December 31, 2025, with early adoption permitted. We do not expect the adoption of ASU 2023-09 to have a material impact on our financial statements.&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In November 2024, FASB issued ASU 2024-03, <em>Income Statement &#8211; Reporting Comprehensive Income &#8211; Expense Disaggregation Disclosures (Subtopic 220-40)</em> (&#8220;ASU 2024-03&#8221;), which will require that entities provide more granular footnote disclosures of the details contained in certain captions on the company&#8217;s income statement, such as &#8220;Selling, General and Administrative&#8221; expenses.&#160; This new guidance is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027, with early adoption permitted.&#160; We have not yet determined all the effects that adoption of this new guidance will have on our statement of operations and related footnote disclosures.&#160; We do not expect its adoption to affect our net operating results or financial position.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In July 2025, FASB issued ASU 2025-05, <em>Financial Instruments &#8211; Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets, </em>which provides public companies with a practical expedient in developing reasonable and supportable forecasts as part of estimating expected credit losses. All entities may elect a practical expedient that assumes that current conditions as of the balance sheet date do not change for the remaining life of the asset. Early adoption is permitted. The amendment is effective for annual periods beginning after December 15, 2025, and interim periods within those annual reporting periods. Accordingly, it will first be applicable for our three-month period ending March 31, 2026.&#160; We are currently evaluating the impact of this standard on our consolidated financial statements and related disclosures.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">In July 2025, the One Big Beautiful Bill Act (OBBBA) was signed into law. This legislation includes changes to the United States federal tax law, which may be subject to further clarification and the issuance of interpretive guidance. We are currently evaluating the impact of the legislation on our consolidated financial statements.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_DeploymentAndOtherServicesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_DeploymentAndOtherServicesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_EquipmentAndMaterialSalesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_EquipmentAndMaterialSalesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_IntegrationServicesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_IntegrationServicesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_JudgmentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_JudgmentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_MaintenanceServicesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_MaintenanceServicesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_NonRecourseFactoringPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_NonRecourseFactoringPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_ProcurementServicesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_ProcurementServicesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SalesTaxesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SalesTaxesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SignificantAccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SignificantAccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_TreasuryStockPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_TreasuryStockPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfAccountingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for 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/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-8<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479405/805-10-25-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_CommitmentsAndContingenciesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 commitments and contingencies, which may include policies for recognizing and measuring loss and gain 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/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 450<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477850/954-450-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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. Includes, but is not limited to, policy for entering into master netting arrangement or similar agreement to mitigate credit risk of financial 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/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-20<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 330<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478411/912-330-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482989/270-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_RevenueRecognitionDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 recognizing unearned income or deferred revenue related to transactions involving the sale of a product or performance of 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_RevenueRecognitionDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRecognitionPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRecognitionPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-5<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-4<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.C.Q3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.1.Q5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.3.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ShippingAndHandlingCostPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 classification of shipping and handling costs, including whether the costs are included in cost of sales or included in other income statement accounts. If shipping and handling fees are significant and are not included in cost of sales, disclosure includes both the amounts of such costs and the line item on the income statement which includes such costs.</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_ShippingAndHandlingCostPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_TradeAndOtherAccountsReceivablePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481569/310-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TradeAndOtherAccountsReceivablePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SignificantAccountingPoliciesAbstract', window );"><strong>Significant Accounting Policies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of revenue</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">FACILITIES MANAGEMENT:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Maintenance revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,026</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,293</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,899</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,598</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Equipment sales, deployment and other services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">456</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">992</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">881</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,833</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Facilities Management revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,482</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,285</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,780</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,431</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SYSTEMS INTEGRATION:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Integration services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">9,486</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,960</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,670</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">7,083</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Systems Integration revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,486</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,960</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,970</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,083</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">PROCUREMENT:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Procurement services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">33,002</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,914</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Procurement revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">33,002</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,914</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">TOTAL REVENUES</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">43,970</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">12,159</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">142,929</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">28,052</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock', window );">Schedule of information of non recourse factoring program</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Aggregate gross amount factored</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">72,391</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,835</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">193,484</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">50,978</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Financing fees paid</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">882</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">427</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,425</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">742</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="ro">
<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 );">Schedule of concentration risk on revenue</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">US-based IT OEM</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">98</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">97</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">99</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">97</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Allowance for doubtful accounts</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Additions charged to expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Recovery of amounts previously reserved</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Amounts written off</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">21</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">7</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SignificantAccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SignificantAccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock', window );">Schedule of contract and other receivables</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Contract and other receivables</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,018</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,210</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(21 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(7 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Contracts and other receivables, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">13,997</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">16,203</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Schedule of inventories</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Raw Materials</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">78</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">201</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Work in Process</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">155</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">120</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Finished Goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14,377</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,373</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(21</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(21</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventories, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">14,589</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">17,673</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock', window );">Schedule of goodwill and intangible assets</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Gross</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Gross</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Carrying</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Carrying</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amortization</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amortization</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Intangible assets not subject to amortization:</em></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Goodwill</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">780</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">780</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Intangible assets subject to amortization:</em></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Customer relationships</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">906</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(906 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">906</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(906 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Acquired software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">234</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(234 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">234</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(234 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Facilities Management unit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">643</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">643</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Systems Integration unit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">137</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">137</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">780</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">780</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Schedule of property and equipment</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Estimated Useful Lives</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(years)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Trade equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">5&#8211;10</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,680</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">763</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">2&#8211;10</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">29,909</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,328</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">5-7</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">277</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">140</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer equipment and software</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">3</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">554</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,363</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Construction in Process</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">N/A</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,469</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">6,701</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">37,889</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,295</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less accumulated depreciation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(2,601</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(3,704</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">35,288</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,591</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three-Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended June 30</strong><strong>,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Capitalized interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">107</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">220</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfOtherAssetsTableTextBlock', window );">Schedule of other assets</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deposits</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,109</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,109</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other non-current assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,459</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,678</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at end of year</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,568</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,787</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock', window );">Schedule of accounts payable and accrued expenses</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accounts payable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">69,281</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">33,491</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,674</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,802</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Compensation, benefits and related taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,616</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,774</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">449</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">273</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total accounts payable and accrued expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">82,020</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">53,340</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDebtTableTextBlock', window );">Schedule of long term debt</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025 (unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Borrowed funds (bank loan; see Note 3)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">20,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">8,667</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred debt issuance costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(459 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(467 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-term debt, non-current</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">19,541</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">8,200</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the (a) carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business (accounts payable); (b) other payables; and (c) accrued liabilities. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer). An alternative caption includes accrued expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDebtTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation.</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_ScheduleOfDebtTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 goodwill and intangible assets, which may be broken down by segment or major class.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfOtherAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amounts of other assets. This disclosure includes other current assets and other noncurrent assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfOtherAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leasing Arrangements (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_LeasingArrangementsAbstract', window );"><strong>Leasing Arrangements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Schedule of lease expense</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating lease cost:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">973</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">236</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,964</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">457</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Variable lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">202</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">114</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">324</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">227</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total operating lease cost</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,175</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">350</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,288</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">684</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash paid for operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">420</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">136</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">656</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">265</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">New right-of-use assets &#8211; operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_ScheduleOfOperatingLeaseInformationTableTextBlock', window );">Schedule of operating lease information</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average remaining lease term &#8211;&#160;operating leases (months)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">109</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">56</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average discount rate &#8211;&#160;operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock', window );">Schedule of future minimum lease payments</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Fiscal</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Year</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,813</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,662</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,777</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,905</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,265</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">2030</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,538</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Thereafter</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">16,678</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total minimum future lease payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">34,638</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Less imputed interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(10,099 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">24,539</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Reported as of June 30, 2025 (in &#8216;000&#8217;s) :</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current portion of lease liability</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,891</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Non-current portion of lease liability</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">22,648</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">24,539</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_LeasingArrangementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_LeasingArrangementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_ScheduleOfOperatingLeaseInformationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_ScheduleOfOperatingLeaseInformationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 future minimum payments required in the aggregate and for each of the five succeeding fiscal years for operating leases having initial or remaining noncancelable lease terms in excess of one year and the total minimum rentals to be received in the future under noncancelable subleases as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 840<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481501/840-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per-Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per-Share</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 );">Schedule of earnings per share diluted</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(unaudited)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(unaudited)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Basic Earnings per share</strong>:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,483</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,402</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,462</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,417</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Weighted-average shares of common stock outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">23,581</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">22,077</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">23,871</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">21,988</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic Earnings per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.19</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Diluted Earnings per share</strong>:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,483</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,402</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,462</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,417</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average shares of common stock outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23,581</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">22,077</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23,871</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">21,988</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Dilutive options and warrants outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,226</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,623</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,368</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,546</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Number of shares used in diluted per-share computation</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">25,807</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">24,700</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">26,239</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">23,534</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Earnings per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.17</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Reporting (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Schedule of segment information</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Information regarding our reportable segments is presented below (in thousands):&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Three Months Ended June 30, 2025:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">33,002</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,486</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,482</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">43,970</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">30,463</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">5,311</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">381</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">36,155</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,539</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,175</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,101</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,815</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">793</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">170</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">963</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">761</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">764</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">343</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">15</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">358</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">756</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">100</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">3</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">859</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,783</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,178</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">910</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,871</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,705</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,705</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Three Months Ended June 30, 2024:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,914</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,960</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,285</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">12,159</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,201</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,824</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">598</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">7,623</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">713</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,136</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,687</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,536</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">490</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">103</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">593</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">91</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">26</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">117</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">349</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(11</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">338</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">310</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">44</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">22</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">376</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">403</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,162</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,547</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">3,112</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,682</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,682</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Six Months Ended June 30, 2025:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">123,179</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,970</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,780</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">142,929</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">113,612</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">11,144</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,148</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">125,904</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,567</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,826</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,632</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">17,025</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,624</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">309</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,933</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">940</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">946</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">14</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">623</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">24</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">661</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,108</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">202</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">17</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,327</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">7,445</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,437</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,276</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">11,158</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:10pt">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">27,574</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">27,574</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Six Months Ended June 30, 2024:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,538</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,083</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,431</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,052</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Cost of revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">14,916</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,343</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,543</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">20,802</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Segment gross profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,622</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,740</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,888</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Payroll and benefits excluded from cost of revenues</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">920</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">232</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,152</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Depreciation and amortization expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">150</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">38</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">188</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">510</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">515</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Interest expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">594</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">78</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">32</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">704</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,028</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,082</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,581</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,691</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Capital expenditures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,721</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,721</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Three Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Six Months Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total segment pre-tax income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,871</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,112</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">11,158</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,691</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Unallocated SG&amp;A, depreciation and other operating expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,494</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,790</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,136</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,443</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Plus: Unallocated interest income, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">175</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">106</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">558</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">205</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less other expense (plus other income)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consolidated pre-tax income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,552</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,428</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,580</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,453</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Procurement</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Systems Integration</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Facilities Management</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total Segments</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Segment Assets at June 30, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,452</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">38,789</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,773</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">70,014</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Segment Assets at December 31, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">19,319</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">25,855</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">932</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">46,106</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>June 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Combined total assets included in segments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">70,014</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">46,106</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Plus items not allocated to segments:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Cash and cash equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">41,836</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">23,222</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Prepaid expenses and other current assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,055</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">230</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Property and equipment, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">979</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">29</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">22,939</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">24,213</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">Other assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,647</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,768</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Consolidated total assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">139,470</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">96,568</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-25<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 43,970<span></span>
</td>
<td class="nump">$ 12,159<span></span>
</td>
<td class="nump">$ 142,929<span></span>
</td>
<td class="nump">$ 28,052<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember', window );">Facilities Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">1,482<span></span>
</td>
<td class="nump">2,285<span></span>
</td>
<td class="nump">2,780<span></span>
</td>
<td class="nump">4,431<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tssi_SystemIntegrationServicesSegmentMember', window );">System Integration Services Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">9,486<span></span>
</td>
<td class="nump">4,960<span></span>
</td>
<td class="nump">16,970<span></span>
</td>
<td class="nump">7,083<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tssi_ProcurementRevenuesSegmentMember', window );">Procurement Revenues Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">33,002<span></span>
</td>
<td class="nump">4,914<span></span>
</td>
<td class="nump">123,179<span></span>
</td>
<td class="nump">16,538<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_MaintenanceMember', window );">Maintenance [Member] | Facilities Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">1,026<span></span>
</td>
<td class="nump">1,293<span></span>
</td>
<td class="nump">1,899<span></span>
</td>
<td class="nump">2,598<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=tssi_IntegrationServicesMember', window );">Integration Services [Member] | System Integration Services Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">9,486<span></span>
</td>
<td class="nump">4,960<span></span>
</td>
<td class="nump">16,670<span></span>
</td>
<td class="nump">7,083<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=tssi_ProcurementServicesMember', window );">Procurement Services [Member] | Procurement Revenues Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">33,002<span></span>
</td>
<td class="nump">4,914<span></span>
</td>
<td class="nump">123,179<span></span>
</td>
<td class="nump">16,538<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=tssi_EquipmentDeploymentAndOtherServicesMember', window );">Equipment Deployment and Other Services [Member] | Facilities Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 456<span></span>
</td>
<td class="nump">$ 992<span></span>
</td>
<td class="nump">$ 881<span></span>
</td>
<td class="nump">$ 1,833<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_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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tssi_SystemIntegrationServicesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tssi_SystemIntegrationServicesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tssi_ProcurementRevenuesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tssi_ProcurementRevenuesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_MaintenanceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_MaintenanceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_IntegrationServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_IntegrationServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_ProcurementServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_ProcurementServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_EquipmentDeploymentAndOtherServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_EquipmentDeploymentAndOtherServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>33
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Details 1)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</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_MajorCustomersAxis=tssi_USBasedITOEMCompanyMember', window );">US-based IT OEM Company [Member] | Revenues [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_ConcentrationRiskPercentages', window );">Concentration percentage</a></td>
<td class="nump">98.00%<span></span>
</td>
<td class="nump">97.00%<span></span>
</td>
<td class="nump">99.00%<span></span>
</td>
<td class="nump">97.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_ConcentrationRiskPercentages">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_ConcentrationRiskPercentages</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=tssi_USBasedITOEMCompanyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_USBasedITOEMCompanyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_RevenuesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_RevenuesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>34
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Details 2) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SignificantAccountingPoliciesAbstract', window );"><strong>Significant Accounting Policies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_AggregateGrossAmountFactored', window );">Aggregate gross amount factored</a></td>
<td class="nump">$ 72,391<span></span>
</td>
<td class="nump">$ 28,835<span></span>
</td>
<td class="nump">$ 193,484<span></span>
</td>
<td class="nump">$ 50,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_PaymentsOfFinancingCosts', window );">Financing fees paid</a></td>
<td class="nump">$ 882<span></span>
</td>
<td class="nump">$ 427<span></span>
</td>
<td class="nump">$ 2,425<span></span>
</td>
<td class="nump">$ 742<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_AggregateGrossAmountFactored">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_AggregateGrossAmountFactored</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_SignificantAccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SignificantAccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfFinancingCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and debt issuance 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> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfFinancingCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>35
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Details 3) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SignificantAccountingPoliciesAbstract', window );"><strong>Significant Accounting Policies</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance at beginning of year</a></td>
<td class="nump">$ 7<span></span>
</td>
<td class="nump">$ 7<span></span>
</td>
</tr>
<tr class="re">
<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 expense</a></td>
<td class="nump">14<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_RecoveryOfAmountsPreviouslyReserved', window );">Recovery of amounts previously reserved</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_AmountsWrittenOff', window );">Amounts written off</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_AllowanceForDoubtfulAccountsReceivable', window );">Balance at end of year</a></td>
<td class="nump">$ 21<span></span>
</td>
<td class="nump">$ 7<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_AmountsWrittenOff">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_AmountsWrittenOff</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_RecoveryOfAmountsPreviouslyReserved">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_RecoveryOfAmountsPreviouslyReserved</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_SignificantAccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SignificantAccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_UnrestrictedCashBalance', window );">Unrestricted cash</a></td>
<td class="nump">$ 3,680,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,680,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_AllowanceForDoubtfulAccounts', window );">Allowance for credit losses</a></td>
<td class="nump">21,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_CashDepositInAMoneyMarketAccount', window );">Cash deposit in a money market</a></td>
<td class="nump">5,000,000.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,000,000.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.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_ContractWithCustomerLiability', window );">Contract with customer liability</a></td>
<td class="text">&#160;<span></span>
</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,384,000<span></span>
</td>
<td class="nump">$ 3,370,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_OtherNoncashExpense', window );">Non-cash compensation expense</a></td>
<td class="nump">900,000<span></span>
</td>
<td class="nump">$ 200,000<span></span>
</td>
<td class="nump">1,900,000<span></span>
</td>
<td class="nump">$ 300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_Goodwills', window );">Carrying value of goodwill</a></td>
<td class="nump">800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">3,832,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,832,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_srt_ProductOrServiceAxis=tssi_MaintenanceContractsObligationsMember', window );">Maintenance Contracts Obligations [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">2,459,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,459,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_srt_ProductOrServiceAxis=tssi_ProcurementAndIntegrationServicesMember', window );">Procurement and Integration Services [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">1,373,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,373,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_tssi_DeferredRevenueRelatedToProcurementServices', window );">Deferred revenue related to procurement services</a></td>
<td class="nump">874,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">874,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_tssi_DeferredRevenueRelatedToIntegrationServices', window );">Deferred revenue related to integration services</a></td>
<td class="nump">$ 499,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 499,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_srt_MajorCustomersAxis=tssi_USBasedITOEMCompanyMember', window );">US-based IT OEM Company [Member] | Revenues [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_ConcentrationRiskPercentageOne', window );">Concentration Risk, Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=tssi_USBasedITOEMCompanyMember', window );">US-based IT OEM Company [Member] | Accounts Receivable [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_ConcentrationRiskPercentageOne', window );">Concentration Risk, Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">98.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">98.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_AllowanceForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_AllowanceForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_CashDepositInAMoneyMarketAccount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_CashDepositInAMoneyMarketAccount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_ConcentrationRiskPercentageOne">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_ConcentrationRiskPercentageOne</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_DeferredRevenueRelatedToIntegrationServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_DeferredRevenueRelatedToIntegrationServices</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_DeferredRevenueRelatedToProcurementServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_DeferredRevenueRelatedToProcurementServices</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_Goodwills">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_Goodwills</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_UnrestrictedCashBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_UnrestrictedCashBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 and obligation to transfer product and service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherNoncashExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 or loss included in net income that result in no cash flow, 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> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNoncashExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tssi_MaintenanceContractsObligationsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_MaintenanceContractsObligationsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_ProcurementAndIntegrationServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_ProcurementAndIntegrationServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_USBasedITOEMCompanyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_USBasedITOEMCompanyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_RevenuesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_RevenuesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGrossCurrent', window );">Contract and other receivables</a></td>
<td class="nump">$ 14,018<span></span>
</td>
<td class="nump">$ 16,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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Allowance for doubtful accounts</a></td>
<td class="num">(21)<span></span>
</td>
<td class="num">(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_ReceivablesNetCurrent', window );">Contracts and other receivables, net</a></td>
<td class="nump">$ 13,997<span></span>
</td>
<td class="nump">$ 16,203<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 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> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_ReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>38
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details 1) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsAndSupplies', window );">Raw Materials</a></td>
<td class="nump">$ 78<span></span>
</td>
<td class="nump">$ 201<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcess', window );">Work in Process</a></td>
<td class="nump">155<span></span>
</td>
<td class="nump">120<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoods', window );">Finished Goods</a></td>
<td class="nump">14,377<span></span>
</td>
<td class="nump">17,373<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryValuationReserves', window );">Reserve</a></td>
<td class="num">(21)<span></span>
</td>
<td class="num">(21)<span></span>
</td>
</tr>
<tr class="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, net</a></td>
<td class="nump">$ 14,589<span></span>
</td>
<td class="nump">$ 17,673<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoods</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterialsAndSupplies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of unprocessed materials to be used in manufacturing or production process and supplies that will be consumed.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterialsAndSupplies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryValuationReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation reserve for inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryValuationReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWorkInProcess">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcess</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>39
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details 2) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer Relationships [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_FiniteLivedIntangibleAssetsGross', window );">Gross carrying amount</a></td>
<td class="nump">$ 906<span></span>
</td>
<td class="nump">$ 906<span></span>
</td>
</tr>
<tr class="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="nump">906<span></span>
</td>
<td class="nump">906<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_ComputerSoftwareIntangibleAssetMember', window );">Computer Software, Intangible Asset [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_FiniteLivedIntangibleAssetsGross', window );">Gross carrying amount</a></td>
<td class="nump">234<span></span>
</td>
<td class="nump">234<span></span>
</td>
</tr>
<tr class="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="nump">234<span></span>
</td>
<td class="nump">234<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_FairValueByAssetClassAxis=us-gaap_GoodwillMember', window );">Goodwill [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_FiniteLivedIntangibleAssetsGross', window );">Gross carrying amount</a></td>
<td class="nump">780<span></span>
</td>
<td class="nump">780<span></span>
</td>
</tr>
<tr class="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="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_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 928<br> -SubTopic 340<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478859/928-340-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_ComputerSoftwareIntangibleAssetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ComputerSoftwareIntangibleAssetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_FairValueByAssetClassAxis=us-gaap_GoodwillMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByAssetClassAxis=us-gaap_GoodwillMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>40
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details 3) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillGross', window );">Goodwill</a></td>
<td class="nump">$ 780<span></span>
</td>
<td class="nump">$ 780<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember', window );">Facilities Segment [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_GoodwillGross', window );">Goodwill</a></td>
<td class="nump">643<span></span>
</td>
<td class="nump">643<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tssi_SystemIntegrationServicesSegmentMember', window );">System Integration Services Segment [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_GoodwillGross', window );">Goodwill</a></td>
<td class="nump">$ 137<span></span>
</td>
<td class="nump">$ 137<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_GoodwillGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized. Includes amount, before amortization expense and impairment loss, of goodwill for private company.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tssi_SystemIntegrationServicesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tssi_SystemIntegrationServicesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details 4) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 37,889,000<span></span>
</td>
<td class="nump">$ 12,295,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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less accumulated depreciation</a></td>
<td class="num">(2,601,000)<span></span>
</td>
<td class="num">(3,704,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_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">35,288,000<span></span>
</td>
<td class="nump">8,591,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_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_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">299,090,000<span></span>
</td>
<td class="nump">2,328,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tssi_ComputerEquipmentAndSoftwareMember', window );">Computer equipment and software [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_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 554,000<span></span>
</td>
<td class="nump">2,363,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_PropertyPlantAndEquipmentEstimatedUsefulLife', window );">Useful life (Year)</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=tssi_ConstructionInProcessMember', window );">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_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 1,469<span></span>
</td>
<td class="nump">6,701,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tssi_BottomMember', window );">Bottom [Member] | Leasehold improvements [Member]</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_tssi_PropertyPlantAndEquipmentEstimatedUsefulLife', window );">Useful life (Year)</a></td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tssi_BottomMember', window );">Bottom [Member] | Trade 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_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 5,680,000<span></span>
</td>
<td class="nump">763,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_PropertyPlantAndEquipmentEstimatedUsefulLife', window );">Useful life (Year)</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_PlanNameAxis=tssi_BottomMember', window );">Bottom [Member] | Furniture And Fixture [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_PropertyPlantAndEquipmentEstimatedUsefulLife', window );">Useful life (Year)</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_PlanNameAxis=tssi_TopMember', window );">Top [Member] | 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_PropertyPlantAndEquipmentEstimatedUsefulLife', window );">Useful life (Year)</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=tssi_TopMember', window );">Top [Member] | Trade 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_PropertyPlantAndEquipmentEstimatedUsefulLife', window );">Useful life (Year)</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=tssi_TopMember', window );">Top [Member] | Furniture and fixtures [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_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 277,000<span></span>
</td>
<td class="nump">$ 1,400,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_PropertyPlantAndEquipmentEstimatedUsefulLife', window );">Useful life (Year)</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_tssi_PropertyPlantAndEquipmentEstimatedUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_PropertyPlantAndEquipmentEstimatedUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</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_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://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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=tssi_ComputerEquipmentAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_ComputerEquipmentAndSoftwareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_ConstructionInProcessMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_ConstructionInProcessMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_BottomMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_BottomMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_TradeEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_TradeEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_FurnitureAndFixtureMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_FurnitureAndFixtureMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_TopMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_TopMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details 5) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestCostsCapitalized', window );">CapitalizedInterest</a></td>
<td class="nump">$ 107<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 220<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_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestCostsCapitalized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of interest capitalized during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483013/835-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestCostsCapitalized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>43
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details 6) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepositsAssets', window );">Deposits</a></td>
<td class="nump">$ 2,109<span></span>
</td>
<td class="nump">$ 2,109<span></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_tssi_OtherNonCurrentAssetsNet', window );">Other non-current assets, net</a></td>
<td class="nump">2,459<span></span>
</td>
<td class="nump">2,678<span></span>
</td>
</tr>
<tr class="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 );">Balance at end of year</a></td>
<td class="nump">$ 4,568<span></span>
</td>
<td class="nump">$ 4,787<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_OtherNonCurrentAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_OtherNonCurrentAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepositsAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value of amounts transferred to third parties for security purposes that are expected to be returned or applied towards payment in the future.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepositsAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details 7) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" 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">$ 69,281<span></span>
</td>
<td class="nump">$ 33,491<span></span>
</td>
</tr>
<tr class="re">
<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 expenses</a></td>
<td class="nump">9,674<span></span>
</td>
<td class="nump">178,020<span></span>
</td>
</tr>
<tr class="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 );">Compensation, benefits and related taxes</a></td>
<td class="nump">2,616<span></span>
</td>
<td class="nump">1,774<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other accrued expenses</a></td>
<td class="nump">449<span></span>
</td>
<td class="nump">273<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent', window );">Total accounts payable and accrued expenses</a></td>
<td class="nump">$ 82,020<span></span>
</td>
<td class="nump">$ 53,340<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 values as of the balance sheet date of obligations incurred through that date and due within one year (or the operating cycle, if longer), including liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received, taxes, interest, rent and utilities, accrued salaries and bonuses, payroll taxes and fringe benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details 8) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements', window );">Borrowed funds (bank loan; see Note 3)</a></td>
<td class="nump">$ 20,000<span></span>
</td>
<td class="nump">$ 8,667<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedAmortizationDeferredFinanceCosts', window );">Deferred debt issuance costs</a></td>
<td class="num">(459)<span></span>
</td>
<td class="num">(4,670)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Long-term debt, non-current</a></td>
<td class="nump">$ 19,541<span></span>
</td>
<td class="nump">$ 8,200<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedAmortizationDeferredFinanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 amortization of debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedAmortizationDeferredFinanceCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BorrowingsUnderGuaranteedInvestmentAgreements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the sum of the obligations to contract holders to provide to them an agreed upon rate of return pursuant to the terms of the underlying contract. These contracts represent lending by the contract holders to the entity in return for a guaranteed (primarily fixed) interest rate until maturity, unless called earlier if the contracts provide that option to the contract holders (usually institutions). There is little or no insurance risk for the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>46
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Balance Sheet Information (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</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_tssi_SupplementalBalanceSheetInformationAbstract', window );"><strong>Supplemental Balance Sheet Information</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_ContractAssetsIncludesAccountsReceivable', window );">Contract assets, accounts receivable</a></td>
<td class="text">&#160;<span></span>
</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,527,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_OtherDepreciationAndAmortization', window );">Depreciation and Amortization</a></td>
<td class="nump">$ 844,000<span></span>
</td>
<td class="nump">$ 117,000<span></span>
</td>
<td class="nump">$ 1,054,000<span></span>
</td>
<td class="nump">$ 188,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">Deferred financing cost</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_ContractAssetsIncludesAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_ContractAssetsIncludesAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_SupplementalBalanceSheetInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_SupplementalBalanceSheetInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherDepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense charged against earnings to allocate the cost of tangible and intangible assets over their remaining economic lives, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherDepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Long Term Debt (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromOtherDebt', window );">Proceeds from borrowings</a></td>
<td class="nump">$ 11,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RepaymentsOfOtherLongTermDebt', window );">Long-term debt, excluding current portion</a></td>
<td class="nump">20,000,000.0<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_RepaymentsOfOtherDebt', window );">Monthly payments amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 437,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=tssi_CreditAgreementMember', window );">Credit Agreement [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_DebtInstrumentInterestRateEffectivePercentage', window );">Interest rate per annum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_FloorInterestRatePerAnnumOfDebt', window );">Floor interest rate per annum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.50%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash deposit</a></td>
<td class="nump">5,000,000.0<span></span>
</td>
<td class="nump">5,000,000.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_LongTermDebtAverageAmountOutstanding', window );">Loan Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20,000,000.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_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Line of credit facility, remaining borrowing capacity</a></td>
<td class="nump">$ 5,000,000.0<span></span>
</td>
<td class="nump">$ 5,000,000.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_DefaultInterestRatePerAnnumOfDebt', window );">Default interest rate per annum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.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_tssi_CreditAgreementDescription', window );">Description of agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">we borrowed $8.7 million, with $5.0 million of that amount deposited in a required interest-bearing cash collateral account, $3.4 million reimbursed to us for capital expenditures previously funded with our operating cash, and $0.3 million funding loan closing costs<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_tssi_LineOfCreditFacilityMinimumLiquidityThreshold', window );">Line of credit facility, minimum liquidity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,000,000.0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_LeverageRatioDescription', window );">Description of leverage ratio</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Financial covenants require us to maintain a leverage ratio, as defined in the agreement, of no more than 3.75x through September 30, 2025; 2.75x from then to September 30, 2026; and 2.00x after that, and a debt service coverage ratio, as defined in the agreement, of at least 1.25x<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_tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement', window );">Additional incremental term loans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000,000.0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_CreditAgreementDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_CreditAgreementDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_DefaultInterestRatePerAnnumOfDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_DefaultInterestRatePerAnnumOfDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_FloorInterestRatePerAnnumOfDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_FloorInterestRatePerAnnumOfDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_LeverageRatioDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_LeverageRatioDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_LineOfCreditFacilityMinimumLiquidityThreshold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 liquidity that the company is required to maintain for the line of credit agreement.</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;">tssi_LineOfCreditFacilityMinimumLiquidityThreshold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_Cash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477796/946-210-45-21<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 210<br> -Topic 946<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477796/946-210-45-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Cash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtInstrumentInterestRateEffectivePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateEffectivePercentage</td>
</tr>
<tr>
<td style="padding-right: 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_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtAverageAmountOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Average amount outstanding of long-term debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1402<br> -Paragraph a<br> -Publisher SEC<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1402<br> -Paragraph b<br> -Subparagraph (1)<br> -Publisher SEC<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtAverageAmountOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromOtherDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 debt classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromOtherDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfOtherDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 for the payment of debt 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> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfOtherDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_RepaymentsOfOtherLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 for the payment of debt classified as other, maturing after one year or the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfOtherLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CreditFacilityAxis=tssi_CreditAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=tssi_CreditAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leasing Arrangements (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_LeasingArrangementsAbstract', window );"><strong>Leasing Arrangements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod', window );">Weighted average remaining lease term - operating leases (months)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">109 years<span></span>
</td>
<td class="text">56 years<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_VariableLeaseCost', window );">Variable lease cost</a></td>
<td class="nump">$ 202<span></span>
</td>
<td class="nump">$ 114<span></span>
</td>
<td class="nump">$ 324<span></span>
</td>
<td class="nump">$ 227<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating lease cost</a></td>
<td class="nump">973<span></span>
</td>
<td class="nump">236<span></span>
</td>
<td class="nump">1,964<span></span>
</td>
<td class="nump">457<span></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_tssi_TotalOperatingLeaseCost', window );">Total operating lease cost</a></td>
<td class="nump">1,175<span></span>
</td>
<td class="nump">350<span></span>
</td>
<td class="nump">2,288<span></span>
</td>
<td class="nump">684<span></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_tssi_OperatingLeaseRightOfUseAssets', window );">New right-of-use assets - operating leases</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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Cash paid for operating leases</a></td>
<td class="num">$ (420)<span></span>
</td>
<td class="num">$ (136)<span></span>
</td>
<td class="num">$ (656)<span></span>
</td>
<td class="num">$ (265)<span></span>
</td>
</tr>
<tr class="ro">
<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 - operating leases</a></td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_LeasingArrangementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_LeasingArrangementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_OperatingLeaseRightOfUseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_OperatingLeaseRightOfUseAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining lease term for operating leases during the period, 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;">tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</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_tssi_TotalOperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_TotalOperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>49
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leasing Arrangements (Details 1) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_LeasingArrangementsAbstract', window );"><strong>Leasing Arrangements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="nump">$ 1,813<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2026</a></td>
<td class="nump">3,662<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2027</a></td>
<td class="nump">3,777<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2028</a></td>
<td class="nump">3,905<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2029</a></td>
<td class="nump">3,265<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_tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix', window );">2030</a></td>
<td class="nump">1,538<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_tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour', window );">Thereafter</a></td>
<td class="nump">166,780<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total minimum future lease payments</a></td>
<td class="nump">34,638<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="num">(10,099)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">24,539<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current portion of lease liability</a></td>
<td class="nump">1,891<span></span>
</td>
<td class="nump">$ 966<span></span>
</td>
</tr>
<tr class="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 );">Non-current portion of lease liability</a></td>
<td class="nump">22,648<span></span>
</td>
<td class="nump">$ 23,540<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalLeasesFutureMinimumPaymentsDue', window );">Future minimum lease payments under non-cancellable leases</a></td>
<td class="nump">$ 24,539<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_tssi_LeasingArrangementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_LeasingArrangementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fourth fiscal year following latest fiscal year.</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;">tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CapitalLeasesFutureMinimumPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 minimum lease payments for capital leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 840<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481161/840-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalLeasesFutureMinimumPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leasing Arrangements (Details Narrative)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tssi_BottomMember', window );">Bottom [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_OperatingLeaseRemainingLeaseTerm', window );">Lessee, Operating Lease, Remaining Lease Term</a></td>
<td class="text">9 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=tssi_TopMember', window );">Top [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_OperatingLeaseRemainingLeaseTerm', window );">Lessee, Operating Lease, Remaining Lease Term</a></td>
<td class="text">119 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_OperatingLeaseRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_OperatingLeaseRemainingLeaseTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</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_PlanNameAxis=tssi_BottomMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_BottomMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=tssi_TopMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_TopMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="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="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic net income per share (in dollars per share)</a></td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.19<span></span>
</td>
<td class="nump">$ 0.06<span></span>
</td>
</tr>
<tr class="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 );">Number of shares used in diluted per-share computation (in shares)</a></td>
<td class="nump">25,807<span></span>
</td>
<td class="nump">24,700<span></span>
</td>
<td class="nump">26,239<span></span>
</td>
<td class="nump">23,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_IncrementalCommonSharesAttributableToCallOptionsAndWarrants', window );">Dilutive options and warrants outstanding (in shares)</a></td>
<td class="nump">2,226<span></span>
</td>
<td class="nump">2,623<span></span>
</td>
<td class="nump">2,368<span></span>
</td>
<td class="nump">1,546<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income per share (in dollars per share)</a></td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.06<span></span>
</td>
<td class="nump">$ 0.17<span></span>
</td>
<td class="nump">$ 0.06<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=tssi_BasicNetIncomePerShareMember', window );">Basic Net Income 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLossAttributableToParentDiluted', window );">Net income</a></td>
<td class="nump">$ 1,483<span></span>
</td>
<td class="nump">$ 1,402<span></span>
</td>
<td class="nump">$ 4,462<span></span>
</td>
<td class="nump">$ 1,417<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted-average shares of common stock outstanding (in shares)</a></td>
<td class="nump">23,581<span></span>
</td>
<td class="nump">22,077<span></span>
</td>
<td class="nump">23,871<span></span>
</td>
<td class="nump">21,988<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=tssi_DilutedNetIncomePerShareMember', window );">Diluted Net Income 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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLossAttributableToParentDiluted', window );">Net income</a></td>
<td class="nump">$ 1,483<span></span>
</td>
<td class="nump">$ 1,402<span></span>
</td>
<td class="nump">$ 4,462<span></span>
</td>
<td class="nump">$ 1,417<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted-average shares of common stock outstanding (in shares)</a></td>
<td class="nump">23,581<span></span>
</td>
<td class="nump">22,077<span></span>
</td>
<td class="nump">23,871<span></span>
</td>
<td class="nump">21,988<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 call options and warrants using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-23<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-26<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLossAttributableToParentDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, and includes adjustments resulting from the assumption that dilutive convertible securities were converted, options or warrants were exercised, or that other shares were issued upon the satisfaction of certain conditions.</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_NetIncomeLossAttributableToParentDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=tssi_BasicNetIncomePerShareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_BasicNetIncomePerShareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=tssi_DilutedNetIncomePerShareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tssi_DilutedNetIncomePerShareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per-Share (Details Narrative) - shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per-Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)</a></td>
<td class="nump">50,000<span></span>
</td>
<td class="nump">1,566,000<span></span>
</td>
<td class="nump">50,000<span></span>
</td>
<td class="nump">2,471,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> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Reporting (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Total revenues</a></td>
<td class="nump">$ 43,970<span></span>
</td>
<td class="nump">$ 12,159<span></span>
</td>
<td class="nump">$ 142,929<span></span>
</td>
<td class="nump">$ 28,052<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 revenue</a></td>
<td class="nump">36,155<span></span>
</td>
<td class="nump">7,623<span></span>
</td>
<td class="nump">125,904<span></span>
</td>
<td class="nump">20,802<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">7,815<span></span>
</td>
<td class="nump">4,536<span></span>
</td>
<td class="nump">17,025<span></span>
</td>
<td class="nump">7,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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Payroll and benefits excluded from cost of revenues</a></td>
<td class="nump">43,970<span></span>
</td>
<td class="nump">12,159<span></span>
</td>
<td class="nump">142,929<span></span>
</td>
<td class="nump">28,052<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">844<span></span>
</td>
<td class="nump">117<span></span>
</td>
<td class="nump">1,054<span></span>
</td>
<td class="nump">188<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="nump">859<span></span>
</td>
<td class="nump">378<span></span>
</td>
<td class="nump">2,327<span></span>
</td>
<td class="nump">706<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Pre-tax income</a></td>
<td class="nump">1,552<span></span>
</td>
<td class="nump">1,428<span></span>
</td>
<td class="nump">4,580<span></span>
</td>
<td class="nump">1,453<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">139,470<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">139,470<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 96,568<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember', window );">Facilities Segment [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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Payroll and benefits excluded from cost of revenues</a></td>
<td class="nump">1,482<span></span>
</td>
<td class="nump">2,285<span></span>
</td>
<td class="nump">2,780<span></span>
</td>
<td class="nump">4,431<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [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_Revenues', window );">Total revenues</a></td>
<td class="nump">43,970<span></span>
</td>
<td class="nump">12,159<span></span>
</td>
<td class="nump">142,929<span></span>
</td>
<td class="nump">28,052<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 revenue</a></td>
<td class="nump">36,155<span></span>
</td>
<td class="nump">7,623<span></span>
</td>
<td class="nump">125,904<span></span>
</td>
<td class="nump">20,802<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">7,815<span></span>
</td>
<td class="nump">4,536<span></span>
</td>
<td class="nump">17,025<span></span>
</td>
<td class="nump">7,250<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Payroll and benefits excluded from cost of revenues</a></td>
<td class="nump">963<span></span>
</td>
<td class="nump">593<span></span>
</td>
<td class="nump">1,933<span></span>
</td>
<td class="nump">1,152<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">764<span></span>
</td>
<td class="nump">117<span></span>
</td>
<td class="nump">946<span></span>
</td>
<td class="nump">188<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherGeneralExpense', window );">Other operating expenses</a></td>
<td class="nump">358<span></span>
</td>
<td class="nump">338<span></span>
</td>
<td class="nump">661<span></span>
</td>
<td class="nump">515<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="nump">859<span></span>
</td>
<td class="nump">376<span></span>
</td>
<td class="nump">2,327<span></span>
</td>
<td class="nump">704<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Pre-tax income</a></td>
<td class="nump">4,871<span></span>
</td>
<td class="nump">3,112<span></span>
</td>
<td class="nump">11,158<span></span>
</td>
<td class="nump">4,691<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">70,014<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">70,014<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">46,106<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_CapitalExpendituresAssets', window );">Capital expenditures</a></td>
<td class="nump">12,705<span></span>
</td>
<td class="nump">1,682<span></span>
</td>
<td class="nump">27,574<span></span>
</td>
<td class="nump">1,721<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member] | Facilities Segment [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_Revenues', window );">Total revenues</a></td>
<td class="nump">1,482<span></span>
</td>
<td class="nump">2,285<span></span>
</td>
<td class="nump">2,780<span></span>
</td>
<td class="nump">4,431<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 revenue</a></td>
<td class="nump">381<span></span>
</td>
<td class="nump">598<span></span>
</td>
<td class="nump">1,148<span></span>
</td>
<td class="nump">1,543<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">1,101<span></span>
</td>
<td class="nump">1,687<span></span>
</td>
<td class="nump">1,632<span></span>
</td>
<td class="nump">2,888<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Payroll and benefits excluded from cost of revenues</a></td>
<td class="nump">170<span></span>
</td>
<td class="nump">103<span></span>
</td>
<td class="nump">309<span></span>
</td>
<td class="nump">232<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">3<span></span>
</td>
<td class="nump">26<span></span>
</td>
<td class="nump">6<span></span>
</td>
<td class="nump">38<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherGeneralExpense', window );">Other operating expenses</a></td>
<td class="nump">15<span></span>
</td>
<td class="nump">11<span></span>
</td>
<td class="nump">24<span></span>
</td>
<td class="nump">5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest Expense</a></td>
<td class="nump">3<span></span>
</td>
<td class="nump">22<span></span>
</td>
<td class="nump">17<span></span>
</td>
<td class="nump">32<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Pre-tax income</a></td>
<td class="nump">910<span></span>
</td>
<td class="nump">1,547<span></span>
</td>
<td class="nump">1,276<span></span>
</td>
<td class="nump">2,581<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">2,773<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,773<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">932<span></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_tssi_CapitalExpendituresAssets', window );">Capital expenditures</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member] | Procurement [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_Revenues', window );">Total revenues</a></td>
<td class="nump">33,002<span></span>
</td>
<td class="nump">4,914<span></span>
</td>
<td class="nump">123,179<span></span>
</td>
<td class="nump">16,538<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 revenue</a></td>
<td class="nump">30,463<span></span>
</td>
<td class="nump">4,201<span></span>
</td>
<td class="nump">113,612<span></span>
</td>
<td class="nump">14,916<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">2,539<span></span>
</td>
<td class="nump">713<span></span>
</td>
<td class="nump">9,567<span></span>
</td>
<td class="nump">1,622<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Payroll and benefits excluded from cost of revenues</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="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">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="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherGeneralExpense', window );">Other operating expenses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">14<span></span>
</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_InterestExpense', window );">Interest Expense</a></td>
<td class="nump">756<span></span>
</td>
<td class="nump">310<span></span>
</td>
<td class="nump">2,108<span></span>
</td>
<td class="nump">594<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Pre-tax income</a></td>
<td class="nump">1,783<span></span>
</td>
<td class="nump">403<span></span>
</td>
<td class="nump">7,445<span></span>
</td>
<td class="nump">1,028<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">28,452<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,452<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,319<span></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_tssi_CapitalExpendituresAssets', window );">Capital expenditures</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="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member] | System Integration [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_Revenues', window );">Total revenues</a></td>
<td class="nump">9,486<span></span>
</td>
<td class="nump">4,960<span></span>
</td>
<td class="nump">16,970<span></span>
</td>
<td class="nump">7,083<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 revenue</a></td>
<td class="nump">5,311<span></span>
</td>
<td class="nump">2,824<span></span>
</td>
<td class="nump">11,144<span></span>
</td>
<td class="nump">4,343<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">4,175<span></span>
</td>
<td class="nump">2,136<span></span>
</td>
<td class="nump">5,826<span></span>
</td>
<td class="nump">2,740<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Payroll and benefits excluded from cost of revenues</a></td>
<td class="nump">793<span></span>
</td>
<td class="nump">490<span></span>
</td>
<td class="nump">1,624<span></span>
</td>
<td class="nump">920<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">761<span></span>
</td>
<td class="nump">91<span></span>
</td>
<td class="nump">940<span></span>
</td>
<td class="nump">150<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherGeneralExpense', window );">Other operating expenses</a></td>
<td class="nump">343<span></span>
</td>
<td class="nump">349<span></span>
</td>
<td class="nump">623<span></span>
</td>
<td class="nump">510<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest Expense</a></td>
<td class="nump">100<span></span>
</td>
<td class="nump">44<span></span>
</td>
<td class="nump">202<span></span>
</td>
<td class="nump">78<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Pre-tax income</a></td>
<td class="nump">2,178<span></span>
</td>
<td class="nump">1,162<span></span>
</td>
<td class="nump">2,437<span></span>
</td>
<td class="nump">1,082<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">38,789<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,789<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 25,855<span></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_tssi_CapitalExpendituresAssets', window );">Capital expenditures</a></td>
<td class="nump">$ 12,705<span></span>
</td>
<td class="nump">$ 1,682<span></span>
</td>
<td class="nump">$ 27,574<span></span>
</td>
<td class="nump">$ 1,721<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_tssi_CapitalExpendituresAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_CapitalExpendituresAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_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> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 interest expense classified as operating and nonoperating. Includes, but is not limited to, cost of borrowing 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> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-24<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483013/835-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherGeneralExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of general expenses not normally included in Other Operating Costs and Expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherGeneralExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tssi_FacilitiesSegmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=us-gaap_OperatingSegmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tssi_ProcurementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tssi_ProcurementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=tssi_SystemIntegrationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=tssi_SystemIntegrationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment Reporting (Details 1) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossBeforeTax', window );">Total segment pre-tax income (loss)</a></td>
<td class="nump">$ 4,871<span></span>
</td>
<td class="nump">$ 3,112<span></span>
</td>
<td class="nump">$ 11,158<span></span>
</td>
<td class="nump">$ 4,691<span></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_tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses', window );">Less: Unallocated SG&amp;A, depreciation and other operating expenses</a></td>
<td class="nump">3,494<span></span>
</td>
<td class="nump">1,790<span></span>
</td>
<td class="nump">7,136<span></span>
</td>
<td class="nump">3,443<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestIncomeExpenseNet', window );">Plus: Unallocated interest income, net</a></td>
<td class="nump">175<span></span>
</td>
<td class="nump">106<span></span>
</td>
<td class="nump">558<span></span>
</td>
<td class="nump">205<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherExpenses', window );">Less other expense (plus other income)</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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes', window );">Consolidated pre-tax income</a></td>
<td class="nump">$ 1,552<span></span>
</td>
<td class="nump">$ 1,428<span></span>
</td>
<td class="nump">$ 4,580<span></span>
</td>
<td class="nump">$ 1,453<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_InterestIncomeExpenseNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of interest income (expense) classified as operating.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestIncomeExpenseNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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, after reclassification adjustments of other comprehensive 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> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481674/830-30-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-17<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-4<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-5<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-20<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ResultsOfOperationsIncomeBeforeIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 income tax expense (benefit), of result of operation in oil- and gas-producing activities. Excludes corporate overhead and interest costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 932<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477215/932-235-50-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 932<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477215/932-235-50-28<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 932<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478988/932-323-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 932<br> -SubTopic 280<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478657/932-280-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 932<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477215/932-235-50-23<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 932<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478934/932-220-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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>55
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Segment Reporting (Details 2) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting</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_tssi_CombinedTotalAssetsIncludedInSegments', window );">Combined total assets included in segments</a></td>
<td class="nump">$ 70,014<span></span>
</td>
<td class="nump">$ 46,106<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">41,836<span></span>
</td>
<td class="nump">23,222<span></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_tssi_PrepaidExpenseAndOtherCurrentAssets', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">1,055<span></span>
</td>
<td class="nump">230<span></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_tssi_PropertyPlantAndEquipmentNetTotal', window );">Property and equipment, net</a></td>
<td class="nump">979<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_OperatingLeaseRightOfUseAsset', window );">Lease right-of-use asset</a></td>
<td class="nump">22,939<span></span>
</td>
<td class="nump">24,213<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssets', window );">Other assets</a></td>
<td class="nump">2,647<span></span>
</td>
<td class="nump">2,768<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Consolidated total assets</a></td>
<td class="nump">$ 139,470<span></span>
</td>
<td class="nump">$ 96,568<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_CombinedTotalAssetsIncludedInSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_CombinedTotalAssetsIncludedInSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_PrepaidExpenseAndOtherCurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_PrepaidExpenseAndOtherCurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tssi_PropertyPlantAndEquipmentNetTotal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_PropertyPlantAndEquipmentNetTotal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates, classified as other. 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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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>56
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Subsequent Events (Details Narrative) - Subsequent Event [Member]<br></strong></div></th>
<th class="th">
<div>Jul. 05, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConstructionLoan', window );">Construction loan</a></td>
<td class="nump">$ 20,000,000.0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tssi_MonthlyPaymentOfLoanUnderCreditAgreement', window );">Monthly payment of loan</a></td>
<td class="nump">$ 437,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tssi_MonthlyPaymentOfLoanUnderCreditAgreement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tssi_MonthlyPaymentOfLoanUnderCreditAgreement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tssi_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ConstructionLoan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 element represents the carrying value of a short-term real estate loan to finance building costs. The funds are disbursed as needed or in accordance with a prearranged plan; generally, a portion of the funds is disbursed at inception and the remainder as construction progresses. The money is repaid on completion of the project, usually from the proceeds of a mortgage loan. The rate is normally higher than the prime rate, and there is usually an origination fee. The effective yield on these loans tends to be high, and the lender has a security interest in the real property. Note that there are separate concepts for the current and noncurrent portions of long-term construction loans.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConstructionLoan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<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>58
<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>60
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>154</ContextCount>
  <ElementCount>270</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>34</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>4</UnitCount>
  <MyReports>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>110200 - Statement - Condensed Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/CondensedConsolidatedBalanceSheets</Role>
      <ShortName>Condensed Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>110201 - Statement - Consolidated Balance Sheets (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals</Role>
      <ShortName>Consolidated Balance Sheets (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>124100 - Statement - Unaudited Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations</Role>
      <ShortName>Unaudited Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>148600 - Statement - Unaudited Consolidated Statements of Changes in Stockholders Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity</Role>
      <ShortName>Unaudited Consolidated Statements of Changes in Stockholders Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>170000 - Statement - Unaudited Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows</Role>
      <ShortName>Unaudited Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>995446 - Disclosure - Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SignificantAccountingPolicies</Role>
      <ShortName>Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>995447 - Disclosure - Supplemental Balance Sheet Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformation</Role>
      <ShortName>Supplemental Balance Sheet Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>995448 - Disclosure - Long Term Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/LongTermDebt</Role>
      <ShortName>Long Term Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>995449 - Disclosure - Leasing Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/LeasingArrangements</Role>
      <ShortName>Leasing Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>995450 - Disclosure - Earnings Per-Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/EarningsPerShare</Role>
      <ShortName>Earnings Per-Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>995451 - Disclosure - Segment Reporting</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SegmentReporting</Role>
      <ShortName>Segment Reporting</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>995452 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>995453 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SignificantAccountingPoliciesPolicies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://tssi.com/role/SignificantAccountingPolicies</ParentRole>
      <Position>15</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>995454 - Disclosure - Significant Accounting Policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SignificantAccountingPoliciesTables</Role>
      <ShortName>Significant Accounting Policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tssi.com/role/SignificantAccountingPolicies</ParentRole>
      <Position>16</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>995455 - Disclosure - Supplemental Balance Sheet Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationTables</Role>
      <ShortName>Supplemental Balance Sheet Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformation</ParentRole>
      <Position>17</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>995456 - Disclosure - Leasing Arrangements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/LeasingArrangementsTables</Role>
      <ShortName>Leasing Arrangements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tssi.com/role/LeasingArrangements</ParentRole>
      <Position>18</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>995457 - Disclosure - Earnings Per-Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/EarningsPerShareTables</Role>
      <ShortName>Earnings Per-Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tssi.com/role/EarningsPerShare</ParentRole>
      <Position>19</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>995458 - Disclosure - Segment Reporting (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SegmentReportingTables</Role>
      <ShortName>Segment Reporting (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tssi.com/role/SegmentReporting</ParentRole>
      <Position>20</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>995459 - Disclosure - Significant Accounting Policies (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SignificantAccountingPoliciesDetails</Role>
      <ShortName>Significant Accounting Policies (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SignificantAccountingPoliciesTables</ParentRole>
      <Position>21</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>995460 - Disclosure - Significant Accounting Policies (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SignificantAccountingPoliciesDetails1</Role>
      <ShortName>Significant Accounting Policies (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SignificantAccountingPoliciesTables</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>995461 - Disclosure - Significant Accounting Policies (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SignificantAccountingPoliciesDetails2</Role>
      <ShortName>Significant Accounting Policies (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SignificantAccountingPoliciesTables</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>995462 - Disclosure - Significant Accounting Policies (Details 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SignificantAccountingPoliciesDetails3</Role>
      <ShortName>Significant Accounting Policies (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SignificantAccountingPoliciesTables</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>995463 - Disclosure - Significant Accounting Policies (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative</Role>
      <ShortName>Significant Accounting Policies (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SignificantAccountingPoliciesTables</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>995464 - Disclosure - Supplemental Balance Sheet Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails</Role>
      <ShortName>Supplemental Balance Sheet Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>995465 - Disclosure - Supplemental Balance Sheet Information (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails1</Role>
      <ShortName>Supplemental Balance Sheet Information (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>995466 - Disclosure - Supplemental Balance Sheet Information (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails2</Role>
      <ShortName>Supplemental Balance Sheet Information (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995467 - Disclosure - Supplemental Balance Sheet Information (Details 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails3</Role>
      <ShortName>Supplemental Balance Sheet Information (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995468 - Disclosure - Supplemental Balance Sheet Information (Details 4)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails4</Role>
      <ShortName>Supplemental Balance Sheet Information (Details 4)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>995469 - Disclosure - Supplemental Balance Sheet Information (Details 5)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails5</Role>
      <ShortName>Supplemental Balance Sheet Information (Details 5)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>995470 - Disclosure - Supplemental Balance Sheet Information (Details 6)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails6</Role>
      <ShortName>Supplemental Balance Sheet Information (Details 6)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>995471 - Disclosure - Supplemental Balance Sheet Information (Details 7)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails7</Role>
      <ShortName>Supplemental Balance Sheet Information (Details 7)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>995472 - Disclosure - Supplemental Balance Sheet Information (Details 8)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetails8</Role>
      <ShortName>Supplemental Balance Sheet Information (Details 8)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>995473 - Disclosure - Supplemental Balance Sheet Information (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative</Role>
      <ShortName>Supplemental Balance Sheet Information (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SupplementalBalanceSheetInformationTables</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>995474 - Disclosure - Long Term Debt (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/LongTermDebtDetailsNarrative</Role>
      <ShortName>Long Term Debt (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/LongTermDebt</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>995475 - Disclosure - Leasing Arrangements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/LeasingArrangementsDetails</Role>
      <ShortName>Leasing Arrangements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/LeasingArrangementsTables</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>995476 - Disclosure - Leasing Arrangements (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/LeasingArrangementsDetails1</Role>
      <ShortName>Leasing Arrangements (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/LeasingArrangementsTables</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>995477 - Disclosure - Leasing Arrangements (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/LeasingArrangementsDetailsNarrative</Role>
      <ShortName>Leasing Arrangements (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/LeasingArrangementsTables</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>995478 - Disclosure - Earnings Per-Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/EarningsPerShareDetails</Role>
      <ShortName>Earnings Per-Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/EarningsPerShareTables</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>995479 - Disclosure - Earnings Per-Share (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/EarningsPerShareDetailsNarrative</Role>
      <ShortName>Earnings Per-Share (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/EarningsPerShareTables</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>995480 - Disclosure - Segment Reporting (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SegmentReportingDetails</Role>
      <ShortName>Segment Reporting (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SegmentReportingTables</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>995481 - Disclosure - Segment Reporting (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SegmentReportingDetails1</Role>
      <ShortName>Segment Reporting (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SegmentReportingTables</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>995482 - Disclosure - Segment Reporting (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SegmentReportingDetails2</Role>
      <ShortName>Segment Reporting (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SegmentReportingTables</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="tssi_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>995483 - Disclosure - Subsequent Events (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tssi.com/role/SubsequentEventsDetailsNarrative</Role>
      <ShortName>Subsequent Events (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tssi.com/role/SubsequentEvents</ParentRole>
      <Position>45</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>tssi-20250630.xsd</File>
    <File>tssi-20250630_cal.xml</File>
    <File>tssi-20250630_def.xml</File>
    <File>tssi-20250630_lab.xml</File>
    <File>tssi-20250630_pre.xml</File>
    <File doctype="10-Q" isDefinitelyFs="true" isUsgaap="true" original="tssi_10q.htm">tssi_10q.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="697">http://fasb.org/us-gaap/2025</BaseTaxonomy>
    <BaseTaxonomy items="31">http://xbrl.sec.gov/dei/2025</BaseTaxonomy>
    <BaseTaxonomy items="4">http://xbrl.sec.gov/ecd/2025</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>63
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "tssi_10q.htm": {
   "nsprefix": "tssi",
   "nsuri": "http://tssi.com/20250630",
   "dts": {
    "schema": {
     "local": [
      "tssi-20250630.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd",
      "http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://www.xbrl.org/dtr/type/2024-01-31/types.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-roles-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-types-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-roles-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-types-2025.xsd",
      "https://xbrl.sec.gov/country/2025/country-2025.xsd",
      "https://xbrl.sec.gov/currency/2025/currency-2025.xsd",
      "https://xbrl.sec.gov/dei/2025/dei-2025.xsd",
      "https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd",
      "https://xbrl.sec.gov/stpr/2025/stpr-2025.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "tssi-20250630_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tssi-20250630_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "tssi-20250630_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tssi-20250630_pre.xml"
     ]
    },
    "inline": {
     "local": [
      "tssi_10q.htm"
     ]
    }
   },
   "keyStandard": 212,
   "keyCustom": 58,
   "axisStandard": 13,
   "axisCustom": 0,
   "memberStandard": 12,
   "memberCustom": 22,
   "hidden": {
    "total": 17,
    "http://fasb.org/us-gaap/2025": 6,
    "http://tssi.com/20250630": 2,
    "http://xbrl.sec.gov/dei/2025": 5,
    "http://xbrl.sec.gov/ecd/2025": 4
   },
   "contextCount": 154,
   "entityCount": 1,
   "segmentCount": 34,
   "elementCount": 359,
   "unitCount": 4,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2025": 697,
    "http://xbrl.sec.gov/dei/2025": 31,
    "http://xbrl.sec.gov/ecd/2025": 4
   },
   "report": {
    "R1": {
     "role": "http://tssi.com/role/Cover",
     "longName": "000001 - Document - Cover",
     "shortName": "Cover",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "strong",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "strong",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
     "longName": "110200 - Statement - Condensed Consolidated Balance Sheets",
     "shortName": "Condensed Consolidated Balance Sheets",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:ContractWithCustomerAssetNetCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "unique": true
     }
    },
    "R3": {
     "role": "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals",
     "longName": "110201 - Statement - Consolidated Balance Sheets (Parentheticals)",
     "shortName": "Consolidated Balance Sheets (Parentheticals)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "unitRef": "USDPShares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "unitRef": "USDPShares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations",
     "longName": "124100 - Statement - Unaudited Consolidated Statements of Operations",
     "shortName": "Unaudited Consolidated Statements of Operations",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "tssi:RevenueFromProcurement",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "tssi:RevenueFromProcurement",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R5": {
     "role": "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity",
     "longName": "148600 - Statement - Unaudited Consolidated Statements of Changes in Stockholders Equity",
     "shortName": "Unaudited Consolidated Statements of Changes in Stockholders Equity",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "AsOf2023-12-31_us-gaap_CommonStockMember",
      "name": "us-gaap:SharesIssued",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2024-01-01to2024-03-31_us-gaap_CommonStockMember",
      "name": "us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows",
     "longName": "170000 - Statement - Unaudited Consolidated Statements of Cash Flows",
     "shortName": "Unaudited Consolidated Statements of Cash Flows",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:ShareBasedCompensation",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "unique": true
     }
    },
    "R7": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
     "longName": "995445 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "7",
     "firstAnchor": null,
     "uniqueAnchor": null
    },
    "R8": {
     "role": "http://tssi.com/role/SignificantAccountingPolicies",
     "longName": "995446 - Disclosure - Significant Accounting Policies",
     "shortName": "Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformation",
     "longName": "995447 - Disclosure - Supplemental Balance Sheet Information",
     "shortName": "Supplemental Balance Sheet Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://tssi.com/role/LongTermDebt",
     "longName": "995448 - Disclosure - Long Term Debt",
     "shortName": "Long Term Debt",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:LongTermDebtTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:LongTermDebtTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://tssi.com/role/LeasingArrangements",
     "longName": "995449 - Disclosure - Leasing Arrangements",
     "shortName": "Leasing Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:LeasesOfLesseeDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:LeasesOfLesseeDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://tssi.com/role/EarningsPerShare",
     "longName": "995450 - Disclosure - Earnings Per-Share",
     "shortName": "Earnings Per-Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://tssi.com/role/SegmentReporting",
     "longName": "995451 - Disclosure - Segment Reporting",
     "shortName": "Segment Reporting",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://tssi.com/role/SubsequentEvents",
     "longName": "995452 - Disclosure - Subsequent Events",
     "shortName": "Subsequent Events",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://tssi.com/role/SignificantAccountingPoliciesPolicies",
     "longName": "995453 - Disclosure - Significant Accounting Policies (Policies)",
     "shortName": "Significant Accounting Policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "15",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://tssi.com/role/SignificantAccountingPoliciesTables",
     "longName": "995454 - Disclosure - Significant Accounting Policies (Tables)",
     "shortName": "Significant Accounting Policies (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "16",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "tssi:ProcurementServicesPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "tssi:ProcurementServicesPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationTables",
     "longName": "995455 - Disclosure - Supplemental Balance Sheet Information (Tables)",
     "shortName": "Supplemental Balance Sheet Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "17",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://tssi.com/role/LeasingArrangementsTables",
     "longName": "995456 - Disclosure - Leasing Arrangements (Tables)",
     "shortName": "Leasing Arrangements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "18",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://tssi.com/role/EarningsPerShareTables",
     "longName": "995457 - Disclosure - Earnings Per-Share (Tables)",
     "shortName": "Earnings Per-Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "19",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://tssi.com/role/SegmentReportingTables",
     "longName": "995458 - Disclosure - Segment Reporting (Tables)",
     "shortName": "Segment Reporting (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "20",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://tssi.com/role/SignificantAccountingPoliciesDetails",
     "longName": "995459 - Disclosure - Significant Accounting Policies (Details)",
     "shortName": "Significant Accounting Policies (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "21",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "tssi:ProcurementServicesPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "tssi:ProcurementServicesPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "unique": true
     }
    },
    "R22": {
     "role": "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
     "longName": "995460 - Disclosure - Significant Accounting Policies (Details 1)",
     "shortName": "Significant Accounting Policies (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "22",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember",
      "name": "tssi:ConcentrationRiskPercentages",
      "unitRef": "Pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "us-gaap:ConcentrationRiskCreditRisk",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember",
      "name": "tssi:ConcentrationRiskPercentages",
      "unitRef": "Pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "us-gaap:ConcentrationRiskCreditRisk",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://tssi.com/role/SignificantAccountingPoliciesDetails2",
     "longName": "995461 - Disclosure - Significant Accounting Policies (Details 2)",
     "shortName": "Significant Accounting Policies (Details 2)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "23",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "tssi:AggregateGrossAmountFactored",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tssi:ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock",
       "tssi:NonRecourseFactoringPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "tssi:AggregateGrossAmountFactored",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tssi:ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock",
       "tssi:NonRecourseFactoringPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://tssi.com/role/SignificantAccountingPoliciesDetails3",
     "longName": "995462 - Disclosure - Significant Accounting Policies (Details 3)",
     "shortName": "Significant Accounting Policies (Details 3)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "24",
     "firstAnchor": {
      "contextRef": "AsOf2024-12-31",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "tssi:ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2024-12-31",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "tssi:ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative",
     "longName": "995463 - Disclosure - Significant Accounting Policies (Details Narrative)",
     "shortName": "Significant Accounting Policies (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "25",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "tssi:UnrestrictedCashBalance",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-4",
      "ancestors": [
       "p",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2024-12-31",
      "name": "tssi:UnrestrictedCashBalance",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "unique": true
     }
    },
    "R26": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails",
     "longName": "995464 - Disclosure - Supplemental Balance Sheet Information (Details)",
     "shortName": "Supplemental Balance Sheet Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "26",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails1",
     "longName": "995465 - Disclosure - Supplemental Balance Sheet Information (Details 1)",
     "shortName": "Supplemental Balance Sheet Information (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "27",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:InventoryRawMaterialsAndSupplies",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:InventoryRawMaterialsAndSupplies",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2",
     "longName": "995466 - Disclosure - Supplemental Balance Sheet Information (Details 2)",
     "shortName": "Supplemental Balance Sheet Information (Details 2)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "28",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30_us-gaap_CustomerRelationshipsMember",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30_us-gaap_CustomerRelationshipsMember",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails3",
     "longName": "995467 - Disclosure - Supplemental Balance Sheet Information (Details 3)",
     "shortName": "Supplemental Balance Sheet Information (Details 3)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "29",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:GoodwillGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:GoodwillGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4",
     "longName": "995468 - Disclosure - Supplemental Balance Sheet Information (Details 4)",
     "shortName": "Supplemental Balance Sheet Information (Details 4)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "30",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails5",
     "longName": "995469 - Disclosure - Supplemental Balance Sheet Information (Details 5)",
     "shortName": "Supplemental Balance Sheet Information (Details 5)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "31",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:InterestCostsCapitalized",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:InterestCostsCapitalized",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails6",
     "longName": "995470 - Disclosure - Supplemental Balance Sheet Information (Details 6)",
     "shortName": "Supplemental Balance Sheet Information (Details 6)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "32",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:DepositsAssets",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfOtherAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:DepositsAssets",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfOtherAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails7",
     "longName": "995471 - Disclosure - Supplemental Balance Sheet Information (Details 7)",
     "shortName": "Supplemental Balance Sheet Information (Details 7)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "33",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:AccountsPayableCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:AccountsPayableCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetails8",
     "longName": "995472 - Disclosure - Supplemental Balance Sheet Information (Details 8)",
     "shortName": "Supplemental Balance Sheet Information (Details 8)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "34",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:BorrowingsUnderGuaranteedInvestmentAgreements",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:BorrowingsUnderGuaranteedInvestmentAgreements",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative",
     "longName": "995473 - Disclosure - Supplemental Balance Sheet Information (Details Narrative)",
     "shortName": "Supplemental Balance Sheet Information (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "35",
     "firstAnchor": {
      "contextRef": "AsOf2023-12-31",
      "name": "tssi:ContractAssetsIncludesAccountsReceivable",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2023-12-31",
      "name": "tssi:ContractAssetsIncludesAccountsReceivable",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://tssi.com/role/LongTermDebtDetailsNarrative",
     "longName": "995474 - Disclosure - Long Term Debt (Details Narrative)",
     "shortName": "Long Term Debt (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "36",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:ProceedsFromOtherDebt",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:LongTermDebtTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:ProceedsFromOtherDebt",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:LongTermDebtTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://tssi.com/role/LeasingArrangementsDetails",
     "longName": "995475 - Disclosure - Leasing Arrangements (Details)",
     "shortName": "Leasing Arrangements (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "37",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "tssi:OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tssi:ScheduleOfOperatingLeaseInformationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30",
      "name": "tssi:OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tssi:ScheduleOfOperatingLeaseInformationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://tssi.com/role/LeasingArrangementsDetails1",
     "longName": "995476 - Disclosure - Leasing Arrangements (Details 1)",
     "shortName": "Leasing Arrangements (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "38",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://tssi.com/role/LeasingArrangementsDetailsNarrative",
     "longName": "995477 - Disclosure - Leasing Arrangements (Details Narrative)",
     "shortName": "Leasing Arrangements (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "39",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-06-30_tssi_BottomMember",
      "name": "tssi:OperatingLeaseRemainingLeaseTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-06-30_tssi_BottomMember",
      "name": "tssi:OperatingLeaseRemainingLeaseTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://tssi.com/role/EarningsPerShareDetails",
     "longName": "995478 - Disclosure - Earnings Per-Share (Details)",
     "shortName": "Earnings Per-Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "40",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:EarningsPerShareBasic",
      "unitRef": "USDPShares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "unique": true
     }
    },
    "R41": {
     "role": "http://tssi.com/role/EarningsPerShareDetailsNarrative",
     "longName": "995479 - Disclosure - Earnings Per-Share (Details Narrative)",
     "shortName": "Earnings Per-Share (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://tssi.com/role/SegmentReportingDetails",
     "longName": "995480 - Disclosure - Segment Reporting (Details)",
     "shortName": "Segment Reporting (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:Revenues",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember",
      "name": "us-gaap:Revenues",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "unique": true
     }
    },
    "R43": {
     "role": "http://tssi.com/role/SegmentReportingDetails1",
     "longName": "995481 - Disclosure - Segment Reporting (Details 1)",
     "shortName": "Segment Reporting (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:OtherComprehensiveIncomeLossBeforeTax",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-04-01to2025-06-30",
      "name": "us-gaap:OtherComprehensiveIncomeLossBeforeTax",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://tssi.com/role/SegmentReportingDetails2",
     "longName": "995482 - Disclosure - Segment Reporting (Details 2)",
     "shortName": "Segment Reporting (Details 2)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "tssi:CombinedTotalAssetsIncludedInSegments",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-06-30",
      "name": "tssi:CombinedTotalAssetsIncludedInSegments",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://tssi.com/role/SubsequentEventsDetailsNarrative",
     "longName": "995483 - Disclosure - Subsequent Events (Details Narrative)",
     "shortName": "Subsequent Events (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "AsOf2025-07-05_us-gaap_SubsequentEventMember",
      "name": "us-gaap:ConstructionLoan",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-07-05_us-gaap_SubsequentEventMember",
      "name": "us-gaap:ConstructionLoan",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tssi_10q.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableAndAccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails7"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts payable and accrued expenses",
        "verboseLabel": "Total accounts payable and accrued expenses",
        "documentation": "Sum of the carrying values as of the balance sheet date of obligations incurred through that date and due within one year (or the operating cycle, if longer), including liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received, taxes, interest, rent and utilities, accrued salaries and bonuses, payroll taxes and fringe benefits."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r28"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails7"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts payable",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r580"
     ]
    },
    "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for doubtful accounts",
        "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r693"
     ]
    },
    "us-gaap_AccountsReceivableGrossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableGrossCurrent",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Contract and other receivables",
        "label": "[Accounts Receivable, before Allowance for Credit Loss, Current]",
        "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current."
       }
      }
     },
     "auth_ref": [
      "r103",
      "r204",
      "r509"
     ]
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable [Member]",
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold."
       }
      }
     },
     "auth_ref": [
      "r501",
      "r680"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails7"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued expenses",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_AccumulatedAmortizationDeferredFinanceCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccumulatedAmortizationDeferredFinanceCosts",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails8"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred debt issuance costs",
        "label": "[Accumulated Amortization, Debt Issuance Costs]",
        "documentation": "Amount of accumulated amortization of debt issuance costs."
       }
      }
     },
     "auth_ref": [
      "r750",
      "r751"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less accumulated depreciation",
        "label": "[Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment]",
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r97",
      "r410"
     ]
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 23.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional paid-in capital",
        "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r580",
      "r797"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional Paid-In Capital",
        "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."
       }
      }
     },
     "auth_ref": [
      "r448",
      "r673",
      "r674",
      "r675",
      "r676",
      "r747",
      "r800"
     ]
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock-based compensation",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r281"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to reconcile net income to net cash provided by (used in) operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_AggregateGrossAmountFactored": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "AggregateGrossAmountFactored",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate gross amount factored"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_AllowanceForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "AllowanceForDoubtfulAccounts",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for credit losses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance at beginning of year",
        "label": "[Accounts Receivable, Allowance for Credit Loss]",
        "periodEndLabel": "Balance at end of year",
        "documentation": "Amount of allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r104",
      "r205",
      "r209",
      "r210",
      "r211",
      "r765"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Allowance for doubtful accounts",
        "label": "[Accounts Receivable, Allowance for Credit Loss, Current]",
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r104",
      "r205",
      "r209"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization of debt issuance costs",
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r117",
      "r229",
      "r235",
      "r507",
      "r510",
      "r511",
      "r513",
      "r515"
     ]
    },
    "tssi_AmountsWrittenOff": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "AmountsWrittenOff",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amounts written off"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r161"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/SegmentReportingDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "[Assets]",
        "verboseLabel": "Total assets",
        "terseLabel": "Consolidated total assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r66",
      "r75",
      "r101",
      "r126",
      "r129",
      "r130",
      "r166",
      "r173",
      "r192",
      "r196",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r328",
      "r330",
      "r358",
      "r397",
      "r398",
      "r403",
      "r472",
      "r526",
      "r527",
      "r532",
      "r580",
      "r588",
      "r589",
      "r600",
      "r709",
      "r710",
      "r753"
     ]
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "[Assets, Current]",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r93",
      "r107",
      "r126",
      "r129",
      "r130",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r328",
      "r330",
      "r358",
      "r580",
      "r709",
      "r710",
      "r753"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Assets:"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_BasicNetIncomePerShareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "BasicNetIncomePerShareMember",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic Net Income Per Share"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basis of Presentation",
        "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)."
       }
      }
     },
     "auth_ref": [
      "r666"
     ]
    },
    "us-gaap_BorrowingsUnderGuaranteedInvestmentAgreements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BorrowingsUnderGuaranteedInvestmentAgreements",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails8"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Borrowed funds (bank loan; see Note 3)",
        "documentation": "Carrying value as of the balance sheet date of the sum of the obligations to contract holders to provide to them an agreed upon rate of return pursuant to the terms of the underlying contract. These contracts represent lending by the contract holders to the entity in return for a guaranteed (primarily fixed) interest rate until maturity, unless called earlier if the contracts provide that option to the contract holders (usually institutions). There is little or no insurance risk for the entity."
       }
      }
     },
     "auth_ref": [
      "r763"
     ]
    },
    "tssi_BottomMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "BottomMember",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetailsNarrative",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Bottom [Member]",
        "verboseLabel": "Bottom [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationsPolicy",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting for Business Combinations",
        "documentation": "Disclosure of accounting policy for business combination."
       }
      }
     },
     "auth_ref": [
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r322",
      "r537",
      "r540",
      "r568",
      "r569"
     ]
    },
    "tssi_CapitalExpendituresAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CapitalExpendituresAssets",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Capital expenditures",
        "label": "[Capital expenditures]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CapitalLeasesFutureMinimumPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CapitalLeasesFutureMinimumPaymentsDue",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Future minimum lease payments under non-cancellable leases",
        "documentation": "Amount of minimum lease payments for capital leases."
       }
      }
     },
     "auth_ref": [
      "r78"
     ]
    },
    "us-gaap_Cash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Cash",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash deposit",
        "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. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r404",
      "r450",
      "r467",
      "r580",
      "r588",
      "r589",
      "r600",
      "r612"
     ]
    },
    "tssi_CashAndCashEquivalentsBeginningOfPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CashAndCashEquivalentsBeginningOfPeriod",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods",
       "weight": 1.0,
       "order": 22.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents, beginning of period"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_CashAndCashEquivalentsEndOfPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CashAndCashEquivalentsEndOfPeriod",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods",
       "weight": 1.0,
       "order": 24.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents, end of period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CashCashEquivalentsAndRestrictedCashBeginningOfPeriods",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Cash, cash equivalents and restricted cash, beginning of periods",
        "label": "[Cash, cash equivalents and restricted cash, beginning of periods]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CashCashEquivalentsAndRestrictedCashEndOfPeriods",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Cash, cash equivalents and restricted cash, end of periods",
        "label": "[Cash, cash equivalents and restricted cash, end of periods]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents",
        "periodStartLabel": "Cash, cash equivalents and restricted cash, beginning of period",
        "periodEndLabel": "Cash, cash equivalents and restricted cash, end of period",
        "documentation": "Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r57",
      "r123"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net increase (decrease) in cash, cash equivalents and restricted cash",
        "label": "[Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Excluding Exchange Rate Effect, Including Discontinued Operation]",
        "documentation": "Amount, excluding effect from change in exchange rate, of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r57"
     ]
    },
    "tssi_CashDepositInAMoneyMarketAccount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CashDepositInAMoneyMarketAccount",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash deposit in a money market"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CityAreaCode",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_CombinedTotalAssetsIncludedInSegments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CombinedTotalAssetsIncludedInSegments",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined total assets included in segments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies (Note 1)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingenciesPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies",
        "documentation": "Disclosure of accounting policy for commitments and contingencies, which may include policies for recognizing and measuring loss and gain contingencies."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r502"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockMember",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r591",
      "r592",
      "r593",
      "r595",
      "r596",
      "r597",
      "r598",
      "r673",
      "r674",
      "r676",
      "r747",
      "r796",
      "r800"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r459"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares, Issued",
        "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."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares, Outstanding",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r37",
      "r459",
      "r478",
      "r800",
      "r801"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 22.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, $.0001 par value; 49,000 shares authorized; 25,975 and 25,250 issued; 23,740 and 23,107 outstanding at June 30, 2025 and December 31, 2024, respectively",
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r262",
      "r268",
      "r406",
      "r580"
     ]
    },
    "tssi_ComputerEquipmentAndSoftwareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ComputerEquipmentAndSoftwareMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Computer equipment and software [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComputerSoftwareIntangibleAssetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ComputerSoftwareIntangibleAssetMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Computer Software, Intangible Asset [Member]",
        "documentation": "Collection of computer programs and related data that provide instructions to a computer, for example, but not limited to, application program, control module or operating system, that perform one or more particular functions or tasks."
       }
      }
     },
     "auth_ref": [
      "r503",
      "r564",
      "r698",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r704",
      "r705"
     ]
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r168",
      "r202",
      "r443",
      "r444",
      "r501",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk By Benchmark Axis",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r168",
      "r202",
      "r443",
      "r444",
      "r501",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683"
     ]
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskCreditRisk",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration of Credit Risk",
        "documentation": "Disclosure of accounting policy for credit risk. Includes, but is not limited to, policy for entering into master netting arrangement or similar agreement to mitigate credit risk of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r356",
      "r357"
     ]
    },
    "tssi_ConcentrationRiskPercentageOne": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ConcentrationRiskPercentageOne",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk, Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_ConcentrationRiskPercentages": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ConcentrationRiskPercentages",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration percentage"
       }
      }
     },
     "auth_ref": []
    },
    "srt_ConsolidationItemsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ConsolidationItemsAxis",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items Axis"
       }
      }
     },
     "auth_ref": [
      "r73",
      "r126",
      "r127",
      "r131",
      "r132",
      "r166",
      "r175",
      "r190",
      "r191",
      "r192",
      "r193",
      "r194",
      "r196",
      "r197",
      "r198",
      "r247",
      "r248",
      "r249",
      "r250",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r400",
      "r526",
      "r527",
      "r709",
      "r710"
     ]
    },
    "srt_ConsolidationItemsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ConsolidationItemsDomain",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails"
     ],
     "auth_ref": [
      "r73",
      "r126",
      "r127",
      "r131",
      "r132",
      "r166",
      "r175",
      "r190",
      "r191",
      "r192",
      "r193",
      "r194",
      "r196",
      "r197",
      "r198",
      "r247",
      "r248",
      "r249",
      "r250",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r400",
      "r526",
      "r527",
      "r709",
      "r710"
     ]
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Principles of Consolidation",
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r517"
     ]
    },
    "tssi_ConstructionInProcessMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ConstructionInProcessMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Construction in process [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConstructionLoan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConstructionLoan",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Construction loan",
        "documentation": "This element represents the carrying value of a short-term real estate loan to finance building costs. The funds are disbursed as needed or in accordance with a prearranged plan; generally, a portion of the funds is disbursed at inception and the remainder as construction progresses. The money is repaid on completion of the project, usually from the proceeds of a mortgage loan. The rate is normally higher than the prime rate, and there is usually an origination fee. The effective yield on these loans tends to be high, and the lender has a security interest in the real property. Note that there are separate concepts for the current and noncurrent portions of long-term construction loans."
       }
      }
     },
     "auth_ref": [
      "r27"
     ]
    },
    "tssi_ContractAssetsIncludesAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ContractAssetsIncludesAccountsReceivable",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract assets, accounts receivable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerAssetNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Costs and estimated earnings in excess of billings on uncompleted contracts",
        "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."
       }
      }
     },
     "auth_ref": [
      "r272",
      "r274",
      "r275",
      "r279"
     ]
    },
    "us-gaap_ContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiability",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with customer liability",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r272",
      "r273",
      "r275",
      "r279"
     ]
    },
    "us-gaap_CostOfRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfRevenue",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost of revenue",
        "verboseLabel": "Cost of revenue",
        "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r50",
      "r126",
      "r129",
      "r130",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r358",
      "r526",
      "r709"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "tssi_CreditAgreementDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CreditAgreementDescription",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Description of agreement"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_CreditAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "CreditAgreementMember",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Facility Axis",
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r246",
      "r708"
     ]
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r246",
      "r708"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CustomerRelationshipsMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer Relationships [Member]",
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships."
       }
      }
     },
     "auth_ref": [
      "r549",
      "r698",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r704",
      "r705"
     ]
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentInterestRateEffectivePercentage",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest rate per annum",
        "documentation": "Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r258",
      "r372",
      "r373",
      "r578"
     ]
    },
    "tssi_DefaultInterestRatePerAnnumOfDebt": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "DefaultInterestRatePerAnnumOfDebt",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Default interest rate per annum"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredRevenue",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenue",
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r615"
     ]
    },
    "us-gaap_DeferredRevenueCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredRevenueCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenues, current",
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r614"
     ]
    },
    "us-gaap_DeferredRevenueNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredRevenueNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenues, non-current",
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r615"
     ]
    },
    "tssi_DeferredRevenueRelatedToIntegrationServices": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "DeferredRevenueRelatedToIntegrationServices",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenue related to integration services"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_DeferredRevenueRelatedToProcurementServices": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "DeferredRevenueRelatedToProcurementServices",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenue related to procurement services"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred financing cost",
        "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."
       }
      }
     },
     "auth_ref": [
      "r667",
      "r671",
      "r739",
      "r740"
     ]
    },
    "tssi_DeploymentAndOtherServicesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "DeploymentAndOtherServicesPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deployment and Other services"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DepositsAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DepositsAssets",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails6"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deposits",
        "documentation": "Carrying value of amounts transferred to third parties for security purposes that are expected to be returned or applied towards payment in the future."
       }
      }
     },
     "auth_ref": [
      "r613"
     ]
    },
    "us-gaap_DepreciationAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DepreciationAndAmortization",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      },
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation and amortization",
        "verboseLabel": "Depreciation and amortization",
        "terseLabel": "Depreciation and amortization",
        "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."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r19"
     ]
    },
    "tssi_DilutedNetIncomePerShareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "DilutedNetIncomePerShareMember",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Diluted Net Income Per Share"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of revenue",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r711"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentQuarterlyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r604"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r605"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentType",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per-Share"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings per common share - Basic",
        "verboseLabel": "Basic net income per share (in dollars per share)",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r90",
      "r116",
      "r139",
      "r140",
      "r141",
      "r142",
      "r143",
      "r144",
      "r145",
      "r146",
      "r151",
      "r153",
      "r158",
      "r159",
      "r160",
      "r165",
      "r260",
      "r289",
      "r314",
      "r327",
      "r347",
      "r348",
      "r396",
      "r415",
      "r519"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings per common share - Diluted",
        "verboseLabel": "Diluted net income per share (in dollars per share)",
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r90",
      "r116",
      "r139",
      "r140",
      "r141",
      "r142",
      "r143",
      "r144",
      "r145",
      "r146",
      "r153",
      "r158",
      "r159",
      "r160",
      "r165",
      "r260",
      "r289",
      "r314",
      "r327",
      "r347",
      "r348",
      "r396",
      "r415",
      "r519"
     ]
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerSharePolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per-Common Share",
        "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."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r15",
      "r162"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://tssi.com/role/EarningsPerShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income Per-Share",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r150",
      "r161",
      "r163",
      "r164"
     ]
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails7"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation, benefits and related taxes",
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address Address Line 1",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine2": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address Address Line 2",
        "documentation": "Address Line 2 such as Street or Suite number"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine3": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine3",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address Address Line 3",
        "documentation": "Address Line 3 such as an Office Park"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address City Or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address State Or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r602"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Common Stock Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r602"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r602"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation State Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r608"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r602"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r602"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r602"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r602"
     ]
    },
    "tssi_EquipmentAndMaterialSalesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "EquipmentAndMaterialSalesPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equipment and Material sales"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_EquipmentDeploymentAndOtherServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "EquipmentDeploymentAndOtherServicesMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equipment Deployment and Other Services [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "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."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r88",
      "r89",
      "r90",
      "r111",
      "r112",
      "r113",
      "r134",
      "r135",
      "r136",
      "r138",
      "r145",
      "r147",
      "r149",
      "r167",
      "r207",
      "r208",
      "r239",
      "r259",
      "r271",
      "r289",
      "r308",
      "r309",
      "r311",
      "r312",
      "r313",
      "r315",
      "r326",
      "r327",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r362",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r374",
      "r375",
      "r385",
      "r414",
      "r437",
      "r438",
      "r439",
      "r448",
      "r498"
     ]
    },
    "tssi_FacilitiesSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "FacilitiesSegmentMember",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetails",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Facilities Segment [Member]",
        "verboseLabel": "Facilities Segment [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Class of asset."
       }
      }
     },
     "auth_ref": [
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r354",
      "r355",
      "r505",
      "r575",
      "r577"
     ]
    },
    "us-gaap_FairValueByAssetClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueByAssetClassAxis",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value By Asset Class Axis",
        "documentation": "Information by class of asset."
       }
      }
     },
     "auth_ref": [
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r354",
      "r355",
      "r505",
      "r575",
      "r577"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instruments",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accumulated Amortization",
        "label": "[Finite-Lived Intangible Assets, Accumulated Amortization]",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r99",
      "r215",
      "r234",
      "r507"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite Lived Intangible Assets By Major Class Axis",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r228",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r236",
      "r237",
      "r391",
      "r392",
      "r442",
      "r503",
      "r507",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gross carrying amount",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r215",
      "r234",
      "r392",
      "r507"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "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."
       }
      }
     },
     "auth_ref": [
      "r228",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r236",
      "r237",
      "r442",
      "r503",
      "r507",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "tssi_FloorInterestRatePerAnnumOfDebt": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "FloorInterestRatePerAnnumOfDebt",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Floor interest rate per annum"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_FurnitureAndFixtureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "FurnitureAndFixtureMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Furniture And Fixture [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FurnitureAndFixturesMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Furniture and fixtures [Member]",
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill",
        "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r216",
      "r393",
      "r527",
      "r531",
      "r537",
      "r538",
      "r539",
      "r570",
      "r574",
      "r580",
      "r695",
      "r696",
      "r743"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets",
        "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."
       }
      }
     },
     "auth_ref": [
      "r694",
      "r697"
     ]
    },
    "us-gaap_GoodwillGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillGross",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Goodwill",
        "label": "[Goodwill, Gross]",
        "documentation": "Amount, before accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized. Includes amount, before amortization expense and impairment loss, of goodwill for private company."
       }
      }
     },
     "auth_ref": [
      "r218",
      "r225",
      "r226",
      "r227",
      "r325",
      "r531"
     ]
    },
    "us-gaap_GoodwillMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Member]",
        "documentation": "Asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": []
    },
    "tssi_Goodwills": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "Goodwills",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carrying value of goodwill"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross profit",
        "label": "[Gross Profit]",
        "verboseLabel": "Gross profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r50",
      "r74",
      "r126",
      "r129",
      "r130",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r358",
      "r521",
      "r526",
      "r678",
      "r685",
      "r686",
      "r687",
      "r688",
      "r709"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Pre-tax income",
        "label": "[Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest]",
        "verboseLabel": "Pre-tax income",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r69",
      "r74",
      "r397",
      "r399",
      "r412",
      "r512",
      "r514",
      "r516",
      "r521",
      "r526",
      "r678",
      "r685",
      "r686",
      "r687",
      "r688"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Unaudited Consolidated Statements of Operations"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement Location Axis",
        "documentation": "Information by location in statement of income where disaggregated amount is reported."
       }
      }
     },
     "auth_ref": [
      "r240",
      "r242",
      "r243",
      "r332",
      "r333",
      "r334",
      "r335",
      "r350",
      "r354",
      "r355",
      "r359",
      "r360",
      "r361",
      "r435",
      "r436",
      "r482",
      "r503",
      "r505",
      "r537",
      "r539",
      "r572",
      "r573",
      "r576",
      "r577",
      "r741",
      "r742",
      "r767"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in statement of income where disaggregated amount is reported."
       }
      }
     },
     "auth_ref": [
      "r242",
      "r243",
      "r332",
      "r333",
      "r334",
      "r335",
      "r350",
      "r354",
      "r355",
      "r359",
      "r360",
      "r361",
      "r435",
      "r436",
      "r482",
      "r503",
      "r505",
      "r537",
      "r539",
      "r572",
      "r573",
      "r576",
      "r577",
      "r741",
      "r742",
      "r767"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income taxes",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r85",
      "r126",
      "r148",
      "r149",
      "r166",
      "r181",
      "r196",
      "r300",
      "r301",
      "r310",
      "r416",
      "r512",
      "r514",
      "r516",
      "r536"
     ]
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes",
        "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."
       }
      }
     },
     "auth_ref": [
      "r110",
      "r298",
      "r299",
      "r302",
      "r303",
      "r304",
      "r307",
      "r446"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash paid for taxes",
        "documentation": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r122",
      "r305",
      "r306"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts payable and accrued expenses",
        "label": "[Increase (Decrease) in Accounts Payable and Accrued Liabilities]",
        "documentation": "The increase (decrease) during the reporting period in the amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInDeferredRevenue",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenues",
        "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r504"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventories",
        "label": "[Increase (Decrease) in Inventories]",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes in operating assets and liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingLeaseLiability",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating lease liabilities",
        "documentation": "Amount of increase (decrease) in obligation for operating lease."
       }
      }
     },
     "auth_ref": [
      "r610",
      "r664"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid expenses and other assets",
        "label": "[Increase (Decrease) in Prepaid Expense and Other Assets]",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_IncreaseDecreaseInReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInReceivables",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Contract and other receivables",
        "label": "[Increase (Decrease) in Receivables]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "tssi_IncreaseDecreaseInRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "IncreaseDecreaseInRightOfUseAsset",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Right-of-use assets",
        "label": "[Right-of-use assets]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInUnbilledReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInUnbilledReceivables",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Costs and estimated earnings in excess of billings on uncompleted contracts",
        "label": "[Increase (Decrease) in Unbilled Receivables]",
        "documentation": "The increase (decrease) during the reporting period of the amount of revenue for work performed for which billing has not occurred, net of uncollectible accounts."
       }
      }
     },
     "auth_ref": [
      "r71"
     ]
    },
    "us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncrementalCommonSharesAttributableToCallOptionsAndWarrants",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dilutive options and warrants outstanding (in shares)",
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of call options and warrants using the treasury stock method."
       }
      }
     },
     "auth_ref": [
      "r154",
      "r155",
      "r156",
      "r160"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arragements [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r606"
     ]
    },
    "tssi_IntegrationServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "IntegrationServicesMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Integration Services [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_IntegrationServicesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "IntegrationServicesPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Integration services"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestCostsCapitalized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestCostsCapitalized",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails5"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "CapitalizedInterest",
        "documentation": "Amount of interest capitalized during the period."
       }
      }
     },
     "auth_ref": [
      "r371"
     ]
    },
    "us-gaap_InterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": -1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest expense",
        "verboseLabel": "Interest Expense",
        "documentation": "Amount of interest expense classified as operating and nonoperating. Includes, but is not limited to, cost of borrowing accounted for as interest expense."
       }
      }
     },
     "auth_ref": [
      "r166",
      "r173",
      "r177",
      "r183",
      "r196",
      "r370",
      "r526",
      "r527",
      "r799"
     ]
    },
    "us-gaap_InterestIncomeExpenseNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestIncomeExpenseNet",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plus: Unallocated interest income, net",
        "documentation": "Amount of interest income (expense) classified as operating."
       }
      }
     },
     "auth_ref": [
      "r394",
      "r514",
      "r685"
     ]
    },
    "us-gaap_InterestIncomeOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestIncomeOther",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Interest income",
        "label": "[Interest Income, Other]",
        "documentation": "Amount of interest income earned from interest bearing assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r514"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash paid for interest, net of amounts capitalized",
        "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."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r120",
      "r121"
     ]
    },
    "us-gaap_InventoryFinishedGoods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryFinishedGoods",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finished Goods",
        "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r616"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventories, net",
        "verboseLabel": "Inventories, net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r106",
      "r508",
      "r580"
     ]
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Inventories",
        "label": "Inventory, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r82",
      "r95",
      "r105",
      "r212",
      "r213",
      "r214",
      "r389",
      "r518"
     ]
    },
    "us-gaap_InventoryRawMaterialsAndSupplies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryRawMaterialsAndSupplies",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Raw Materials",
        "documentation": "Gross amount of unprocessed materials to be used in manufacturing or production process and supplies that will be consumed."
       }
      }
     },
     "auth_ref": [
      "r618"
     ]
    },
    "us-gaap_InventoryValuationReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryValuationReserves",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reserve",
        "label": "[Inventory Valuation Reserves]",
        "documentation": "Amount of valuation reserve for inventory."
       }
      }
     },
     "auth_ref": [
      "r61",
      "r618"
     ]
    },
    "us-gaap_InventoryWorkInProcess": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryWorkInProcess",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Work in Process",
        "documentation": "Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r617"
     ]
    },
    "tssi_JudgmentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "JudgmentsPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Judgments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeaseCostTableTextBlock",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of lease expense",
        "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income."
       }
      }
     },
     "auth_ref": [
      "r752"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leasehold improvements [Member]",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r384"
     ]
    },
    "us-gaap_LeasesOfLesseeDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeasesOfLesseeDisclosureTextBlock",
     "presentation": [
      "http://tssi.com/role/LeasingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Leasing Arrangements",
        "label": "Leases of Lessee Disclosure [Text Block]",
        "documentation": "The entire disclosure for lessee entity's leasing arrangements including, but not limited to, all of the following: (a.) The basis on which contingent rental payments are determined, (b.) The existence and terms of renewal or purchase options and escalation clauses, (c.) Restrictions imposed by lease agreements, such as those concerning dividends, additional debt, and further leasing."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "tssi_LeasingArrangementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "LeasingArrangementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Leasing Arrangements"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less: Unallocated SG&amp;A, depreciation and other operating expenses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total minimum future lease payments",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r383",
      "r668",
      "r672",
      "r762"
     ]
    },
    "tssi_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Thereafter",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fourth fiscal year following latest fiscal year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "2025",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r383",
      "r668",
      "r672",
      "r762"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "2029",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r383",
      "r668",
      "r672",
      "r762"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "2028",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r383",
      "r668",
      "r672",
      "r762"
     ]
    },
    "tssi_LesseeOperatingLeaseLiabilityPaymentsDueYearSix": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearSix",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "2030"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "2027",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r383",
      "r668",
      "r672",
      "r762"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "2026",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r383",
      "r668",
      "r672",
      "r762"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less imputed interest",
        "label": "[Lessee, Operating Lease, Liability, Undiscounted Excess Amount]",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r383"
     ]
    },
    "tssi_LeverageRatioDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "LeverageRatioDescription",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Description of leverage ratio"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 26.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "[Liabilities]",
        "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r27",
      "r28",
      "r29",
      "r32",
      "r33",
      "r34",
      "r35",
      "r126",
      "r129",
      "r130",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r329",
      "r330",
      "r331",
      "r358",
      "r458",
      "r520",
      "r532",
      "r600",
      "r709",
      "r753",
      "r754"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and stockholders' equity",
        "label": "[Liabilities and Equity]",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r67",
      "r408",
      "r580",
      "r588",
      "r589",
      "r667",
      "r670",
      "r692",
      "r749"
     ]
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current liabilities",
        "label": "[Liabilities, Current]",
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r94",
      "r126",
      "r129",
      "r130",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r329",
      "r330",
      "r331",
      "r358",
      "r580",
      "r709",
      "r753",
      "r754"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total non-current liabilities",
        "label": "[Liabilities, Noncurrent]",
        "documentation": "Amount of obligation due after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r32",
      "r33",
      "r34",
      "r35",
      "r126",
      "r129",
      "r130",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r329",
      "r330",
      "r331",
      "r358",
      "r709",
      "r753",
      "r754"
     ]
    },
    "us-gaap_LiabilitiesNoncurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesNoncurrentAbstract",
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-current Liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_LineOfCreditFacilityCurrentBorrowingCapacityIncrement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "LineOfCreditFacilityCurrentBorrowingCapacityIncrement",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional incremental term loans"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_LineOfCreditFacilityMinimumLiquidityThreshold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "LineOfCreditFacilityMinimumLiquidityThreshold",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of credit facility, minimum liquidity",
        "documentation": "The amount of liquidity that the company is required to maintain for the line of credit agreement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of credit facility, remaining borrowing capacity",
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding)."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r31",
      "r246"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermDebtAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LongTermDebtAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Long Term Debt"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermDebtAverageAmountOutstanding": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LongTermDebtAverageAmountOutstanding",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loan Outstanding",
        "documentation": "Average amount outstanding of long-term debt."
       }
      }
     },
     "auth_ref": [
      "r86",
      "r87",
      "r483"
     ]
    },
    "us-gaap_LongTermDebtNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LongTermDebtNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails8"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-term debt, non-current",
        "verboseLabel": "Long-term debt, non-current",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_LongTermDebtTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LongTermDebtTextBlock",
     "presentation": [
      "http://tssi.com/role/LongTermDebt"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt",
        "documentation": "The entire disclosure for long-term debt."
       }
      }
     },
     "auth_ref": [
      "r63"
     ]
    },
    "tssi_MaintenanceContractsObligationsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "MaintenanceContractsObligationsMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maintenance Contracts Obligations [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MaintenanceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "MaintenanceMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maintenance [Member]",
        "documentation": "Process of preserving asset, including, but not limited to, building, machinery and software."
       }
      }
     },
     "auth_ref": [
      "r711",
      "r712"
     ]
    },
    "tssi_MaintenanceServicesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "MaintenanceServicesPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maintenance services"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Major Customers Axis"
       }
      }
     },
     "auth_ref": [
      "r202",
      "r533",
      "r535",
      "r582",
      "r586",
      "r766",
      "r768",
      "r769",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795"
     ]
    },
    "tssi_MonthlyPaymentOfLoanUnderCreditAgreement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "MonthlyPaymentOfLoanUnderCreditAgreement",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Monthly payment of loan"
       }
      }
     },
     "auth_ref": []
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "auth_ref": [
      "r202",
      "r533",
      "r535",
      "r582",
      "r586",
      "r766",
      "r768",
      "r769",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 21.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) financing activities",
        "label": "[Cash Provided by (Used in) Financing Activity, Including Discontinued Operation]",
        "documentation": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r119"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flows from Financing Activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in investing activities",
        "label": "[Cash Provided by (Used in) Investing Activity, Including Discontinued Operation]",
        "documentation": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r119"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flows from Investing Activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) operating activities",
        "label": "[Cash Provided by (Used in) Operating Activity, Including Discontinued Operation]",
        "documentation": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r58",
      "r59"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flows from Operating Activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      },
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net income",
        "label": "[Net Income (Loss) Attributable to Parent]",
        "verboseLabel": "Net income",
        "terseLabel": "Net income",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r51",
      "r59",
      "r70",
      "r90",
      "r92",
      "r108",
      "r109",
      "r113",
      "r126",
      "r129",
      "r130",
      "r131",
      "r137",
      "r141",
      "r142",
      "r143",
      "r144",
      "r145",
      "r148",
      "r149",
      "r157",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r260",
      "r263",
      "r265",
      "r269",
      "r289",
      "r314",
      "r327",
      "r348",
      "r358",
      "r413",
      "r479",
      "r496",
      "r497",
      "r512",
      "r514",
      "r516",
      "r599",
      "r709"
     ]
    },
    "us-gaap_NetIncomeLossAttributableToParentDiluted": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLossAttributableToParentDiluted",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net income",
        "label": "[Net Income (Loss) Attributable to Parent, Diluted]",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent, and includes adjustments resulting from the assumption that dilutive convertible securities were converted, options or warrants were exercised, or that other shares were issued upon the satisfaction of certain conditions."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recent Accounting Guidance",
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact."
       }
      }
     },
     "auth_ref": []
    },
    "tssi_NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additions to capital expenditures financed with accounts payable"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_NonRecourseFactoringPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "NonRecourseFactoringPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-recourse factoring"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non Rule 10b5-1 Arragement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r607"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non Rule 10b5-1 Arragement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r607"
     ]
    },
    "us-gaap_NoncashInvestingAndFinancingItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NoncashInvestingAndFinancingItemsAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental non-cash investing activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingExpenses",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total operating expenses",
        "label": "[Operating Expenses]",
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r516"
     ]
    },
    "us-gaap_OperatingExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingExpensesAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating expenses:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income from operations",
        "label": "[Operating Income (Loss)]",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r74",
      "r512",
      "r516",
      "r521",
      "r678",
      "r685",
      "r686",
      "r687",
      "r688"
     ]
    },
    "us-gaap_OperatingLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating lease cost",
        "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability."
       }
      }
     },
     "auth_ref": [
      "r379",
      "r579"
     ]
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total",
        "label": "[Operating Lease, Liability]",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r377"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease liabilities, current",
        "verboseLabel": "Current portion of lease liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r377"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/LeasingArrangementsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease liabilities, non-current",
        "verboseLabel": "Non-current portion of lease liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r377"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Cash paid for operating leases",
        "label": "[Operating Lease, Payments]",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r378",
      "r381"
     ]
    },
    "tssi_OperatingLeaseRemainingLeaseTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "OperatingLeaseRemainingLeaseTerm",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Remaining Lease Term"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/SegmentReportingDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease right-of-use asset",
        "verboseLabel": "Lease right-of-use asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r376"
     ]
    },
    "tssi_OperatingLeaseRightOfUseAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "OperatingLeaseRightOfUseAssets",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "New right-of-use assets - operating leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average discount rate - operating leases",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r382",
      "r579"
     ]
    },
    "tssi_OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average remaining lease term - operating leases (months)",
        "documentation": "The weighted average remaining lease term for operating leases during the period, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingSegmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingSegmentsMember",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Segments [Member]",
        "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r190",
      "r191",
      "r192",
      "r193",
      "r194",
      "r197",
      "r526",
      "r527"
     ]
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAccruedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails7"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other accrued expenses",
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_OtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssets",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other assets",
        "label": "[Other Assets]",
        "documentation": "Amount of assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r65",
      "r100",
      "r402",
      "r527",
      "r588",
      "r589",
      "r600"
     ]
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails6"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other assets",
        "verboseLabel": "Balance at end of year",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_OtherCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash and cash equivalents",
        "label": "[Other Cash Equivalents, at Carrying Value]",
        "documentation": "Amount of short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates, classified as other. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherComprehensiveIncomeLossBeforeTax",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total segment pre-tax income (loss)",
        "documentation": "Amount before tax, after reclassification adjustments of other comprehensive income (loss)."
       }
      }
     },
     "auth_ref": [
      "r115",
      "r362",
      "r363",
      "r368",
      "r395",
      "r414",
      "r620",
      "r621"
     ]
    },
    "us-gaap_OtherDepreciationAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherDepreciationAndAmortization",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation and Amortization",
        "documentation": "Amount of expense charged against earnings to allocate the cost of tangible and intangible assets over their remaining economic lives, classified as other."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r19",
      "r52"
     ]
    },
    "us-gaap_OtherExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherExpenses",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less other expense (plus other income)",
        "documentation": "Amount of expense classified as other."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r54",
      "r588",
      "r589"
     ]
    },
    "us-gaap_OtherGeneralExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherGeneralExpense",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other operating expenses",
        "documentation": "Amount of general expenses not normally included in Other Operating Costs and Expenses."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r526"
     ]
    },
    "tssi_OtherNonCurrentAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "OtherNonCurrentAssetsNet",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails6"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other non-current assets, net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherNoncashExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherNoncashExpense",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-cash compensation expense",
        "documentation": "Amount of expense or loss included in net income that result in no cash flow, classified as other."
       }
      }
     },
     "auth_ref": [
      "r59"
     ]
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of treasury stock",
        "label": "[Payments for Repurchase of Common Stock]",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_PaymentsOfFinancingCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsOfFinancingCosts",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing fees paid",
        "documentation": "The cash outflow for loan and debt issuance costs."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_PaymentsToAcquireProductiveAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquireProductiveAssets",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Capital expenditures",
        "label": "[Payments to Acquire Productive Assets]",
        "documentation": "The cash outflow for purchases of and capital improvements on property, plant and equipment (capital expenditures), software, and other intangible assets."
       }
      }
     },
     "auth_ref": [
      "r79",
      "r744",
      "r745",
      "r746"
     ]
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetailsNarrative",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r724",
      "r725",
      "r726",
      "r727",
      "r728",
      "r729",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r735",
      "r736",
      "r737",
      "r738"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetailsNarrative",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r724",
      "r725",
      "r726",
      "r727",
      "r728",
      "r729",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r735",
      "r736",
      "r737",
      "r738"
     ]
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r270"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Shares Authorized",
        "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."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r459"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Shares Issued",
        "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r270"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 21.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred stock, $.0001 par value; 1,000 shares authorized; none issued",
        "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."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r262",
      "r267",
      "r405",
      "r580"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid expenses and other current assets",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r619"
     ]
    },
    "tssi_PrepaidExpenseAndOtherCurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "PrepaidExpenseAndOtherCurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Prepaid expenses and other current assets",
        "label": "[Prepaid expenses and other current assets]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromIssuanceOfSeniorLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromIssuanceOfSeniorLongTermDebt",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from issuance of long-term debt",
        "documentation": "The cash inflow from a borrowing with the highest claim on the assets of the entity in case of bankruptcy or liquidation (with maturities initially due after one year or beyond the operating cycle, if longer)."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_ProceedsFromOtherDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromOtherDebt",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from borrowings",
        "documentation": "Amount of cash inflow from debt classified as other."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from exercise of stock options",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r7"
     ]
    },
    "tssi_ProcurementAndIntegrationServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ProcurementAndIntegrationServicesMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Procurement and Integration Services [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_ProcurementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ProcurementMember",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Procurement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_ProcurementRevenuesSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ProcurementRevenuesSegmentMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Procurement Revenues Segment [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_ProcurementServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ProcurementServicesMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Procurement Services [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_ProcurementServicesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ProcurementServicesPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Procurement services"
       }
      }
     },
     "auth_ref": []
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product Or Service Axis"
       }
      }
     },
     "auth_ref": [
      "r199",
      "r390",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434",
      "r506",
      "r511",
      "r514",
      "r516",
      "r533",
      "r534",
      "r581",
      "r583",
      "r584",
      "r587",
      "r590",
      "r609",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r631",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r660",
      "r661",
      "r662",
      "r663",
      "r706",
      "r707",
      "r766",
      "r768",
      "r769",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "auth_ref": [
      "r199",
      "r390",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434",
      "r506",
      "r511",
      "r514",
      "r516",
      "r533",
      "r534",
      "r581",
      "r583",
      "r584",
      "r587",
      "r590",
      "r609",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r631",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r660",
      "r661",
      "r662",
      "r663",
      "r706",
      "r707",
      "r766",
      "r768",
      "r769",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Axis]",
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r384"
     ]
    },
    "tssi_PropertyPlantAndEquipmentEstimatedUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "PropertyPlantAndEquipmentEstimatedUsefulLife",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Useful life (Year)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and equipment, gross",
        "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."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r96",
      "r411"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and equipment, net",
        "verboseLabel": "Property and equipment, net",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r384",
      "r401",
      "r411",
      "r580"
     ]
    },
    "tssi_PropertyPlantAndEquipmentNetTotal": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "PropertyPlantAndEquipmentNetTotal",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Property and equipment, net",
        "label": "[Property and equipment, net]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and Equipment",
        "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."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r83",
      "r84",
      "r409"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of property and equipment",
        "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."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "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."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r384"
     ]
    },
    "us-gaap_ProvisionForOtherCreditLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProvisionForOtherCreditLosses",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision for inventory reserve",
        "documentation": "Amount of expense related to credit loss from transactions other than loan and lease transactions."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r68"
     ]
    },
    "tssi_ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for Credit Losses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReceivablesNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ReceivablesNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract and other receivables, net",
        "verboseLabel": "Contracts and other receivables, net",
        "documentation": "The total amount due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value."
       }
      }
     },
     "auth_ref": [
      "r580"
     ]
    },
    "tssi_RecoveryOfAmountsPreviouslyReserved": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "RecoveryOfAmountsPreviouslyReserved",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of amounts previously reserved"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RepaymentsOfOtherDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RepaymentsOfOtherDebt",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Monthly payments amount",
        "documentation": "Amount of cash outflow for the payment of debt classified as other."
       }
      }
     },
     "auth_ref": [
      "r56"
     ]
    },
    "us-gaap_RepaymentsOfOtherLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RepaymentsOfOtherLongTermDebt",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/LongTermDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-term debt, excluding current portion",
        "documentation": "Amount of cash outflow for the payment of debt classified as other, maturing after one year or the operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r56"
     ]
    },
    "us-gaap_RestrictedCash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestrictedCash",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted cash",
        "documentation": "Amount of cash restricted as to withdrawal or usage. 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."
       }
      }
     },
     "auth_ref": [
      "r612",
      "r665",
      "r761",
      "r764"
     ]
    },
    "tssi_RestrictedCashBeginningOfPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "RestrictedCashBeginningOfPeriod",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "tssi_CashCashEquivalentsAndRestrictedCashBeginningOfPeriods",
       "weight": 1.0,
       "order": 23.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted cash, beginning of period"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_RestrictedCashEndOfPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "RestrictedCashEndOfPeriod",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "tssi_CashCashEquivalentsAndRestrictedCashEndOfPeriods",
       "weight": 1.0,
       "order": 25.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted cash, end of period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResultsOfOperationsIncomeBeforeIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ResultsOfOperationsIncomeBeforeIncomeTaxes",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidated pre-tax income",
        "documentation": "Amount, before income tax expense (benefit), of result of operation in oil- and gas-producing activities. Excludes corporate overhead and interest costs."
       }
      }
     },
     "auth_ref": [
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 24.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated deficit",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r64",
      "r407",
      "r440",
      "r441",
      "r447",
      "r460",
      "r580"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r88",
      "r89",
      "r90",
      "r134",
      "r135",
      "r136",
      "r138",
      "r145",
      "r147",
      "r149",
      "r207",
      "r208",
      "r239",
      "r259",
      "r289",
      "r308",
      "r309",
      "r311",
      "r312",
      "r313",
      "r315",
      "r326",
      "r327",
      "r336",
      "r338",
      "r339",
      "r341",
      "r346",
      "r374",
      "r375",
      "r437",
      "r439",
      "r448",
      "r800"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total revenues",
        "label": "[Revenue from Contract with Customer, Excluding Assessed Tax]",
        "terseLabel": "Payroll and benefits excluded from cost of revenues",
        "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."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r73",
      "r166",
      "r174",
      "r175",
      "r190",
      "r196",
      "r199",
      "r201",
      "r202",
      "r276",
      "r277",
      "r278",
      "r390",
      "r512",
      "r516"
     ]
    },
    "tssi_RevenueFromFacilitiesManagement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "RevenueFromFacilitiesManagement",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_Revenues",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Facilities management"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_RevenueFromProcurement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "RevenueFromProcurement",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_Revenues",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Procurement"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_RevenueFromSystemIntegration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "RevenueFromSystemIntegration",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_Revenues",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "System integration"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRecognitionDeferredRevenue": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRecognitionDeferredRevenue",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Revenue",
        "documentation": "Disclosure of accounting policy for recognizing unearned income or deferred revenue related to transactions involving the sale of a product or performance of services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRecognitionPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition",
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources."
       }
      }
     },
     "auth_ref": [
      "r480"
     ]
    },
    "us-gaap_Revenues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Revenues",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total revenues",
        "label": "[Revenues]",
        "verboseLabel": "Total revenues",
        "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss)."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r73",
      "r114",
      "r126",
      "r129",
      "r130",
      "r166",
      "r174",
      "r175",
      "r190",
      "r196",
      "r199",
      "r201",
      "r202",
      "r206",
      "r247",
      "r248",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r256",
      "r257",
      "r358",
      "r397",
      "r399",
      "r526",
      "r571",
      "r588",
      "r589",
      "r709"
     ]
    },
    "us-gaap_RevenuesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenuesAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenues:"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_RevenuesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "RevenuesMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenues [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arragement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r607"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arragement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r607"
     ]
    },
    "tssi_SalesTaxesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "SalesTaxesPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales taxes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of contract and other receivables",
        "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r44"
     ]
    },
    "us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of accounts payable and accrued expenses",
        "documentation": "Tabular disclosure of the (a) carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business (accounts payable); (b) other payables; and (c) accrued liabilities. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer). An alternative caption includes accrued expenses."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfDebtTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfDebtTableTextBlock",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of long term debt",
        "documentation": "Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of earnings per share diluted",
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r677"
     ]
    },
    "us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of future minimum lease payments",
        "documentation": "Tabular disclosure of future minimum payments required in the aggregate and for each of the five succeeding fiscal years for operating leases having initial or remaining noncancelable lease terms in excess of one year and the total minimum rentals to be received in the future under noncancelable subleases as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r77"
     ]
    },
    "tssi_ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of information of non recourse factoring program"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of goodwill and intangible assets",
        "documentation": "Tabular disclosure of goodwill and intangible assets, which may be broken down by segment or major class."
       }
      }
     },
     "auth_ref": [
      "r694",
      "r697"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of inventories",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r45",
      "r46",
      "r47"
     ]
    },
    "tssi_ScheduleOfOperatingLeaseInformationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "ScheduleOfOperatingLeaseInformationTableTextBlock",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of operating lease information"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfOtherAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfOtherAssetsTableTextBlock",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of other assets",
        "documentation": "Tabular disclosure of the carrying amounts of other assets. This disclosure includes other current assets and other noncurrent assets."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "presentation": [
      "http://tssi.com/role/SegmentReportingTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of segment information",
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r17",
      "r18"
     ]
    },
    "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of concentration risk on revenue",
        "documentation": "Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark."
       }
      }
     },
     "auth_ref": [
      "r679",
      "r684"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "Security12bTitle",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security 12b Title",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r601"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r603"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentDomain",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetails",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r73",
      "r74",
      "r75",
      "r166",
      "r170",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r180",
      "r181",
      "r182",
      "r184",
      "r185",
      "r187",
      "r188",
      "r189",
      "r190",
      "r191",
      "r192",
      "r193",
      "r194",
      "r196",
      "r197",
      "r198",
      "r202",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r238",
      "r244",
      "r245",
      "r323",
      "r324",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r523",
      "r526",
      "r527",
      "r531",
      "r585",
      "r766",
      "r768",
      "r769",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://tssi.com/role/SegmentReporting"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Segment Reporting",
        "label": "Segment Reporting Disclosure [Text Block]",
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments."
       }
      }
     },
     "auth_ref": [
      "r75",
      "r166",
      "r169",
      "r170",
      "r171",
      "r172",
      "r173",
      "r186",
      "r188",
      "r189",
      "r194",
      "r195",
      "r196",
      "r197",
      "r198",
      "r199",
      "r200",
      "r202",
      "r522",
      "r524",
      "r525",
      "r526",
      "r528",
      "r529",
      "r530"
     ]
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SellingGeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling, general and administrative",
        "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r511",
      "r512",
      "r513",
      "r516",
      "r659"
     ]
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock-based compensation",
        "label": "[Share-Based Payment Arrangement, Noncash Expense]",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock-Based Compensation",
        "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."
       }
      }
     },
     "auth_ref": [
      "r280",
      "r282",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297"
     ]
    },
    "us-gaap_SharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharesIssued",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance, shares",
        "label": "[Shares, Issued]",
        "periodEndLabel": "Balance, shares",
        "documentation": "Number of shares of stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_ShippingAndHandlingCostPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShippingAndHandlingCostPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shipping and handling costs",
        "documentation": "Disclosure of accounting policy for the classification of shipping and handling costs, including whether the costs are included in cost of sales or included in other income statement accounts. If shipping and handling fees are significant and are not included in cost of sales, disclosure includes both the amounts of such costs and the line item on the income statement which includes such costs."
       }
      }
     },
     "auth_ref": []
    },
    "tssi_SignificantAccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "SignificantAccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Significant Accounting Policies"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Significant Accounting Policies",
        "label": "Significant Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r124",
      "r125"
     ]
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetails",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement Business Segments Axis",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r73",
      "r74",
      "r75",
      "r91",
      "r166",
      "r170",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r180",
      "r181",
      "r182",
      "r184",
      "r185",
      "r187",
      "r188",
      "r189",
      "r190",
      "r191",
      "r192",
      "r193",
      "r194",
      "r196",
      "r197",
      "r198",
      "r202",
      "r217",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r238",
      "r241",
      "r244",
      "r245",
      "r323",
      "r324",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r523",
      "r526",
      "r527",
      "r531",
      "r585",
      "r766",
      "r768",
      "r769",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r37",
      "r41",
      "r42",
      "r88",
      "r89",
      "r90",
      "r111",
      "r112",
      "r113",
      "r134",
      "r135",
      "r136",
      "r138",
      "r145",
      "r147",
      "r149",
      "r167",
      "r207",
      "r208",
      "r239",
      "r259",
      "r271",
      "r289",
      "r308",
      "r309",
      "r311",
      "r312",
      "r313",
      "r315",
      "r326",
      "r327",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r362",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r374",
      "r375",
      "r385",
      "r414",
      "r437",
      "r438",
      "r439",
      "r448",
      "r498"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementLineItems",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails",
      "http://tssi.com/role/LeasingArrangementsDetailsNarrative",
      "http://tssi.com/role/LongTermDebtDetailsNarrative",
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative",
      "http://tssi.com/role/SubsequentEventsDetailsNarrative",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails3",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r135",
      "r136",
      "r167",
      "r261",
      "r262",
      "r264",
      "r266",
      "r375",
      "r390",
      "r445",
      "r449",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r459",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r468",
      "r469",
      "r470",
      "r471",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r480",
      "r481",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r498",
      "r514",
      "r516",
      "r594",
      "r798"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Unaudited Consolidated Statements of Cash Flows"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Condensed Consolidated Balance Sheets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Unaudited Consolidated Statements of Changes in Stockholders Equity"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementTable",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails",
      "http://tssi.com/role/LeasingArrangementsDetailsNarrative",
      "http://tssi.com/role/LongTermDebtDetailsNarrative",
      "http://tssi.com/role/SegmentReportingDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetails",
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative",
      "http://tssi.com/role/SubsequentEventsDetailsNarrative",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails2",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails3",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Table]",
        "documentation": "Presentation of information about comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r135",
      "r136",
      "r167",
      "r203",
      "r261",
      "r262",
      "r264",
      "r266",
      "r375",
      "r390",
      "r445",
      "r449",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r459",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r468",
      "r469",
      "r470",
      "r471",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r480",
      "r481",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r498",
      "r514",
      "r516",
      "r594",
      "r798"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted stock vested, shares",
        "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r64"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock options exercised, shares",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r36",
      "r37",
      "r64",
      "r283"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted stock vested, amount",
        "documentation": "Aggregate value of stock related to Restricted Stock Awards issued during the period."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r36",
      "r37",
      "r64"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock options exercised, amount",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r37",
      "r41",
      "r42",
      "r64"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 27.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets",
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total stockholders' equity",
        "label": "[Equity, Attributable to Parent]",
        "periodStartLabel": "Balance, amount",
        "periodEndLabel": "Balance, amount",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r41",
      "r42",
      "r60",
      "r461",
      "r478",
      "r499",
      "r500",
      "r580",
      "r600",
      "r667",
      "r669",
      "r670",
      "r692",
      "r749",
      "r800"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://tssi.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r369",
      "r387"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://tssi.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Axis]",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r369",
      "r387"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://tssi.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r369",
      "r387"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Events"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://tssi.com/role/SubsequentEvents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subsequent Events",
        "label": "Subsequent Events [Text Block]",
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r388"
     ]
    },
    "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SupplementalBalanceSheetDisclosuresTextBlock",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Supplemental Balance Sheet Information",
        "label": "Supplemental Balance Sheet Disclosures [Text Block]",
        "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity."
       }
      }
     },
     "auth_ref": [
      "r611"
     ]
    },
    "tssi_SupplementalBalanceSheetInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "SupplementalBalanceSheetInformationAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Balance Sheet Information"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental disclosures of cash flow information:"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_SystemIntegrationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "SystemIntegrationMember",
     "presentation": [
      "http://tssi.com/role/SegmentReportingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "System Integration [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_SystemIntegrationServicesSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "SystemIntegrationServicesSegmentMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "System Integration Services Segment [Member]",
        "verboseLabel": "System Integration Services Segment [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_TopMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "TopMember",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetailsNarrative",
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Top [Member]",
        "verboseLabel": "Top [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_TotalOperatingLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "TotalOperatingLeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total operating lease cost"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract and Other Receivables",
        "documentation": "Disclosure of accounting policy for accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r689",
      "r690",
      "r691"
     ]
    },
    "tssi_TradeEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "TradeEquipmentMember",
     "presentation": [
      "http://tssi.com/role/SupplementalBalanceSheetInformationDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trade Equipment [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "TradingSymbol",
     "presentation": [
      "http://tssi.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "tssi_TreasuryCommonSharesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "TreasuryCommonSharesMember",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TreasuryStockCommonShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TreasuryStockCommonShares",
     "presentation": [
      "http://tssi.com/role/ConsolidatedBalanceSheetsParentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock, Common, Shares",
        "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r23"
     ]
    },
    "tssi_TreasuryStockPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "TreasuryStockPolicyTextBlock",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Treasury Stock",
        "label": "[Treasury Stock]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TreasuryStockRetiredCostMethodAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TreasuryStockRetiredCostMethodAmount",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury shares retired, amount",
        "documentation": "Amount of decrease of par value, additional paid in capital (APIC) and retained earnings of common and preferred stock retired from treasury when treasury stock is accounted for under the cost method."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r22",
      "r37"
     ]
    },
    "tssi_TreasuryStockSharesAcquiredCostMethod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "TreasuryStockSharesAcquiredCostMethod",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury shares repurchased, shares"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TreasuryStockSharesRetired": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TreasuryStockSharesRetired",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury shares retired, shares",
        "documentation": "Number of shares of common and preferred stock retired from treasury during the period."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r37",
      "r64"
     ]
    },
    "tssi_TreasuryStockValuesAcquiredCostMethod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "TreasuryStockValuesAcquiredCostMethod",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/UnauditedConsolidatedStatementsOfChangesInStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury shares repurchased, amount"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_TreasuryStocksCommonValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "TreasuryStocksCommonValue",
     "crdr": "credit",
     "calculation": {
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 25.0
      }
     },
     "presentation": [
      "http://tssi.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury stock, at cost; 1,975 and 1,849 shares at June 30, 2025 and December 31, 2024"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_USBasedITOEMCompanyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "USBasedITOEMCompanyMember",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails1",
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "US-based IT OEM Company [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tssi_UnrestrictedCashBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tssi.com/20250630",
     "localname": "UnrestrictedCashBalance",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unrestricted cash"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense",
     "crdr": "credit",
     "presentation": [
      "http://tssi.com/role/SignificantAccountingPoliciesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additions charged to expense",
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense."
       }
      }
     },
     "auth_ref": [
      "r128",
      "r133"
     ]
    },
    "us-gaap_VariableLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "VariableLeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://tssi.com/role/LeasingArrangementsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable lease cost",
        "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases."
       }
      }
     },
     "auth_ref": [
      "r380",
      "r579"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of shares used in diluted per-share computation (in shares)",
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period."
       }
      }
     },
     "auth_ref": [
      "r152",
      "r160"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://tssi.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted-average shares of common stock outstanding (in shares)",
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period."
       }
      }
     },
     "auth_ref": [
      "r151",
      "r160"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "505",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2A"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-1"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "460",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481549/505-30-45-1"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 4.E)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/840/tableOfContent"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481501/840-20-50-2"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481161/840-30-50-1"
  },
  "r79": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r80": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "SubTopic": "20",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2"
  },
  "r81": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "210",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-20"
  },
  "r82": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "270",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482989/270-10-45-6"
  },
  "r83": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-1"
  },
  "r84": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-6"
  },
  "r85": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h))",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r86": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r87": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r88": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r89": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r90": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r91": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1"
  },
  "r92": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7"
  },
  "r93": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r94": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5"
  },
  "r95": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r96": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r97": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r98": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r99": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r100": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r101": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r102": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r103": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r104": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r105": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r106": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r107": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r108": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r109": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r110": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-1"
  },
  "r111": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r112": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r113": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r114": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r115": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r116": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r117": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r118": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-17"
  },
  "r119": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r120": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r121": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r122": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A"
  },
  "r123": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8"
  },
  "r124": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r125": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-1"
  },
  "r126": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r127": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-4"
  },
  "r128": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-5"
  },
  "r129": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r130": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r131": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r132": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r133": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r134": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r135": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r136": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r137": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r138": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r139": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r140": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r141": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r142": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r143": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3"
  },
  "r144": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4"
  },
  "r145": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r146": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r147": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r148": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8"
  },
  "r149": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9"
  },
  "r150": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r151": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10"
  },
  "r152": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16"
  },
  "r153": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2"
  },
  "r154": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-22"
  },
  "r155": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-23"
  },
  "r156": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-26"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r158": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r159": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7"
  },
  "r160": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r161": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r162": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r163": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3"
  },
  "r165": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15"
  },
  "r166": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r167": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1"
  },
  "r168": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r169": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r170": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15"
  },
  "r171": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r172": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r173": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r174": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r175": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r178": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r179": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r180": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r183": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-24"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r186": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2"
  },
  "r205": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4"
  },
  "r206": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/330/tableOfContent"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-1"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-4"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r220": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-4"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-5"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r251": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-6"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-1"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-2"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-3"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-1"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-3"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3A",
   "Subparagraph": "(24)(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-2"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-3"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-11"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-7"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "17",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-2"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-3"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-4"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-5"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.C.Q3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.1.Q5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.3.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-25"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-28"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-19"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-20"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r312": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479405/805-10-25-1"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-2"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4F"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-30"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-32"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482804/825-20-50-1"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-2"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483013/835-20-50-1"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483013/835-20-50-1"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "12A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r384": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/855/tableOfContent"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "330",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478411/912-330-50-1"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "924",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 11.L)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "928",
   "SubTopic": "340",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r394": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r395": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478671/942-235-S50-1"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-2"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r405": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r422": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r424": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "805",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478072/944-805-50-1"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-6"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-21"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478785/954-310-50-2"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "450",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477850/954-450-50-1"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-10"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "SubTopic": "30",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-12"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-11"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-14"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-18"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-21"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-24"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-4"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "48",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "64",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481620/480-10-55-64"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "231",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-8"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "39",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-39"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-41"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-42"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478064/805-740-55-13"
  },
  "r571": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "182",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-182"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "184",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-184"
  },
  "r574": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "101",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "102",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-12"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10"
  },
  "r581": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479401/944-30-55-2"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r586": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-11"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-14"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r609": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r610": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "SubTopic": "20",
   "Topic": "842",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r611": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/210/tableOfContent"
  },
  "r612": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r613": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r614": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r615": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r616": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r617": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r618": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r619": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r620": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r621": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r622": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r623": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r624": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r625": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r626": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r627": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r628": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r629": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r630": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r631": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r632": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(k)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r633": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r634": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(m)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r635": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r636": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r637": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r638": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r639": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r640": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r641": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r642": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r643": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r644": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(k)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r645": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r646": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(m)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r647": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r648": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r649": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r650": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r651": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(r)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r652": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(s)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r653": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(t)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r654": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(u)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r655": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-30"
  },
  "r656": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-31"
  },
  "r657": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-32"
  },
  "r658": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-33"
  },
  "r659": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r660": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r661": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r662": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r663": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r664": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r665": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8"
  },
  "r666": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r667": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r668": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-4"
  },
  "r669": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r670": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r671": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r672": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r673": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r674": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r675": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r676": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r677": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r678": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r679": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r680": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r681": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r682": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r683": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r684": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r685": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r686": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r687": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r688": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r689": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r690": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r691": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481569/310-20-50-1"
  },
  "r692": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r693": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r694": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-20/tableOfContent"
  },
  "r695": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r696": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r697": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r698": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r699": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r700": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r701": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r702": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r703": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r704": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r705": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r706": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r707": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r708": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r709": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r710": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r711": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r712": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r713": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r714": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r715": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r716": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r717": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r718": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r719": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r720": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r721": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r722": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r723": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r724": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r725": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r726": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r727": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r728": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r729": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r730": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r731": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r732": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r733": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r734": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r735": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r736": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r737": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r738": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r739": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r740": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r741": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r742": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r743": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r744": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480060/805-50-25-1"
  },
  "r745": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480027/805-50-30-1"
  },
  "r746": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480027/805-50-30-2"
  },
  "r747": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r748": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-1"
  },
  "r749": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r750": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r751": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1"
  },
  "r752": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r753": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r754": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r755": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "932",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478934/932-220-50-1"
  },
  "r756": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r757": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-28"
  },
  "r758": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-28"
  },
  "r759": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "932",
   "SubTopic": "280",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478657/932-280-50-1"
  },
  "r760": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "932",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478988/932-323-50-1"
  },
  "r761": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r762": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-2"
  },
  "r763": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r764": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r765": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r766": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B"
  },
  "r767": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r768": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r769": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r770": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C"
  },
  "r771": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D"
  },
  "r772": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4G",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G"
  },
  "r773": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r774": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r775": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r776": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r777": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r778": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r779": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r780": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r781": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r782": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r783": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r784": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r785": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r786": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r787": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r788": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r789": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r790": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r791": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r792": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r793": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r794": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r795": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r796": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r797": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r798": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r799": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r800": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r801": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>64
<FILENAME>0001654954-25-009327-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001654954-25-009327-xbrl.zip
M4$L#!!0    ( "!$"UO'O#FP-P\  -"C   1    ='-S:2TR,#(U,#8S,"YX
M<V3M75MOZS82?E]@_X,V+]L"ZSC.[23!.2V<6Y%%;DB<MOM4T!)M$Y5)'Y)*
MXG^_0^IBR91$RDG7 E9]Z(G%F>',?+S,C&CZZ\_O\]![Q5P01K_M#';W=CQ,
M?180.OVV$XD>$CXA.YZ0B 8H9!1_VUEBL?/S3W__V]=_]'J_GS_=>I?,C^:8
M2N^"8R1QX+T1.?-4TQT2$O->+Z'^->[GS-O?/=C=.\F>GR,!7(QJ'F@<9"V7
M(,]C$\]7DC7KWDE_L-??W]L_RHB>V42^(8X]Q/T9D=B7$4>A%V!!IM0#Q;W8
MH#-O^$_?NYPA/D<+CN>(*J.\X:O<S61=L,62D^E,>C_X/WJJ&^^F=W\U\LXC
M02@6PGMF8:14$?_R;JB_ZPW#T'M2',)[P@+S5QPDXH0_@TX\\# 59^_AMYV9
ME(NS?O_M[6WW?<S#7<:G8,G>0?_W6T+_W$DH.9Y4DA[WH34E]"/. :QE1JTI
M!?9WI^RUG[9J7Z4L@.@4H44/29EQ39 8:_E)8Q\:.1E'$G!.V A]Q4*6]Q.W
M02^#@][>H'<P2)DHGJK14&G+:9^S$/<3LIR&<KG HE0]W9(WJ"#\[2 5/>C_
M?G?[K-V_D_D?7%Q&/C@]/>WKUI34H"R"I9K',&(SR=!*:N@)5;/'+] ':\Y,
MB(_Z<6.!E)22'L>D)!L,+**25XV%N+$X%"2O@09:4T+!914D65-!<B#Y&D-!
M/C3W5;/BV>_M'>2&3(!)N0'04.B"1G.+<*# G/@9 Z,./(SVUOC PE*SRV95
M]8S*$V,_*+<1&@J$_K*"$!IZ:-(3T;A /YE4T$-#@5 *L7*S^K#KL[FFV#L^
M@ T@F__7C,\O\01%(3@AHM\C%)()47,5AUBM^ 6"7+-$?(KE/9ICL4 ^KND,
MUDG/^XHH95(O\/JS>K)8$#IAR4=XH&;=F5HP1H"4I_YX>;HQ!>LEY8+!CK;C
M$?!'_&<F)A44X FA1'>XI_X;>+W5-M;S--?7_CKINI0(MJT'^I/^&S84 <S:
M"+6:)]P)21VGCT(_"C=@7&E6S9<\31VWJ3]I@"D(AC\$"TF@%NQS%*I5[7F&
ML12ILZUT=4@,!GNP]H#[G\&-.(,BD>GEA7J)5"\6VT&5@ZK<\X\0(%$YPY*
M$2N\G(BMH U,T*J@\GXH"O^QPR[%[H6B*(#XM3!],K>*A\G# G-M0()?$X9:
M#/</!\;$RX07T5R)5W'YJH,.1F<8+V:(3K&XH<^2^7_.6!A 7G3U/2)RZ8AK
MG81:H ]/CC<#.NG1(]3+]^G%G7;@NX./Q.PZ9&^N4WA%7POL%Q7%; 0LR/=T
M!QV(*8@W5! 8W2..5-E@R#F:Q@Z+,:MNKH/H]/3H\/!(Q9E$^"$3$<?P(9'E
M)<*\G+0.CQ2/9S*ED%GXB,JAKW-9<-4C#&B?X 23>A(K+L?KN.3D>2N!7BJQ
MPR;#)EHLXF00A?D8\@:R-S[7FB<(.1!:<?IBX)236HPTO9S@#JX4KEM&IR.L
MLO:QC'$I/+$"<+(.@&+W%+^G!'2.SAR-D4AV!UK8/<H:K&X_-=P>2_'R8CKG
MI\Z_0IR"=\0CYL\S2#=CSQM/;6X_VEMW>RK" QD]+:1S>K83X*D:AD]XP;C:
M+)-E?_VIU>D#8XV/17B9C,[GJ]UW+/#W",R[>ETM,<93J\_WS7TU%>'%,CJ?
M.T6C#:)2Y^CTZ*!A=.K]D/[55=?<8!NA<>@$6D)HA>RP,62QY ZP)IE% 39G
M<BMX1I;NEF5T&+I$P7G,JINM&!D9>UE$W"%B#8WS<%2T6;$PLG(S3.Z0L,;+
MA<6LO,V*A)&>&[%S!T2SR. 22T1"E] @I;2"9"3SUM@@$=UAU@BS@3MH RMJ
MQT8MP!4U;]#AU@BW?7?<]NVXF>4$5]SV.]P:X7;@CMN!'3>S).&*VT&'6R/<
M[A%7ASA>L3M^*Q8KCLV+%RF.62<=GDV2XF+$XDYO1=*L:3BFQ5WXLCF,@Z8X
M.H0R&]<WNHCF(U#N-X72(;HQ#RXTA+(+<C:!\J IE X!SX9G&[JXYV-0'C:%
M\M .I5F&:0CE80?E!E >-87RR ZE6:QI".51!^4&4!XWA?+8"N47LX+3$,KC
M#LH-H/S2%,HO=BC-HDY#*+]T4&X Y4E3*$_L4)8</6D&Y4D'Y090KA=]-F"T
M0FN6?AI"VU6 ZD_PEF-92V$%S:CR%$_X=N T/.]0*,?5M%N!,:HVY2<>NF*;
M.R@#&RKV8MH7QX,H7>FL"3#K*YH#H14HH[Y2#U2WO-D/#Q76MJI&*S!&M:3L
M^%"WK#F"L39UK%16>(P*2 T\W:QQ..A5?$%7T6B#Y<2L9IA'O;I)XXC%H!8,
M>Q1P8O_22A<"-,!COQ8/^WNQ$[.J4(U']PJL^@M%5=4""Y45GY+2P-H7COY/
M]Q3U/W6[W!.>>/I6NC-U-=FW'4'FBU#=(:>?S?0E@0JZ7GJ5UA]@[N[[/$Q)
ME/R:6^DTVNL>2CI.12#N&U*,6_- "%M@F%)8]%/E=[S^IYD5HG%3LX %AVVU
M!\964WO6AF,;K8*!W]2JXESY?*.^]O.7R,&GXB5S7\$FV D\:MQ25W>%8WRG
MYRWSM: :%O6IE_+UU*/>8+]W,-A]%T&J8Q,55O8U4R'E:ZQ"^;V4CIVG#*K7
MHP;]E5]86=:IJ&-)/^CQN4GWQ;M3W?K/\V2?-M5@=>&E4^<IN?JC09<.UV"Z
M )[GO(\9%?"G:K@-CC^DRF9J?(8.^AK49!GJ3Y O>_A]$2**)./+:_CLIE3(
M>4'*U4K()^BGQ68WZ+KJD^?Z/"4:."3E:-QYY<VSM;/$N+BUCT,I5C(^/&/R
M-]E6:6+CU)]%0S>LW8GLYH7\K;2Q)U(Q#1Q1<AGNIAALT&GQ8MT/F*UOP]YP
MC5Y=V.NT1J?DZ@^SR^1&79U>J=#JCQ''"'*CI;YN3URP^9S17U$8002@]/JV
M4T= PE!]RP]$<?597U%]-HY?N'[;\3D.B$P?0P1%6##2@5X<L$!3'/?%!" 7
M,C&^O)%XKLC 7DC6))'Z'O1?.(L6*2D!DFJ3GC!D=A&^YFS^R!ELD;H]M:>R
M=5-C@BB^F_*OMP:V Q(2%8?>P=H^K3*K@JS]]CTO!9#>4(FG:9>&<64T+;6L
M,'-T 5L,_>\1X>H:1B'OL)RQH'2:U1"7VFHW2FB)GVN27@5<3:HAKH<OP..M
MH'=#U:]!"'R)XW]OJ/[YA8?)B\!#(7 V\UP(6SI"U:V<0QJH?]0-JZ\H5"6Q
M<SPE5+UZ>9@\:EU22]W)VPGI$Q82 G9U#2J84&FFG:R=YBEMU[ !M"S6B#RX
M&W&WUQGF6+VB@=N@+A*VT\0B-B6FU1&TTR2709BSH]'@7>-KIP/N&56ZCCBB
M M)X8!X&@:Y>BA&[0 LB40BY/:;P$$)7<4VH4CCXC<A9\BU7\8B6RK+4-Y\K
MLJ4[V1TB$!)JQ9\Q?R5^<O'9<H3?Y7D( 4CJ#B?*QE%6_,,O9S*5\0GA1Q;A
M6@QRHMR^06IJ+M0CF)AW2$+7*'R&J5IE5@/Z[1MWB1<A6R;:/L@9YA;0FC!L
MW[Q<HFRQRXER^P;].PKT>_HJ,VK:MZ^\G@4C]%X)0AW!]M6'_>@)P[;"!5;U
M;<;3>Q],0]Q(MV\2*(DA[E 77L%T5I?LXW1:ISOHBF08ANQ-;3_7C%^R:"PG
M49CML]JX5?SVV6*W[ZI"4: "=@O-]HU0O_D71"%^F.2^3_(P*1VNG,'F/->W
MH9D3]>-RVN2,Y&=ZZ/0VKH,4;\2LL=Z=<?OF7C"88U3&O3P1\2>D%.H!FN)5
M.E)/T]P(L& 1B_BP_L/IE.MW<L CQ'"N%HAXE.$L<;30M#-U4E/F%?/EPR16
M6#QR_$I8),)E^HNIN875@;2EJ4ZB\F^<2,AC'B:3#+62AI;:\$)YL; 4:Y1:
M4MV\X=#[:U\XU6V]&3CU-.U\DZ9\#YD*$T3>T.$=B%W>(?XG3F_LRI=?+'2M
M!*YFG7Z@V&$UCZFVNI[_PECP!AID(RW_H)5>O\03S&%$)V_UGG"H3HB,6$GN
MN$J7F["T<S)5V5!2O[&97<[23K,?X\.3R\<0Z6)'5M>Y FES9<^+P+ 8WI))
M-N,:\FSX3C1]^F$3=4:FRJSZ-)[4+_W$_>H-84U[*R<H+'BPVOF)HC?4#Z-
MO;M=3SES"Z0K?2OMO0X9XVI.J:CC"887+/!#E38\3.(?L(K-M)-9!^*:'9^Y
M#US&/Y!M-\.%<)N&7.B%:@@9B&ZXQ,+G9)$_#E)+L>D!":FR[ \K?TLHY+.Q
M@LDYG.4=H60>S6\)K&+P>#F:@=_5+YNF]C1E:N4DNH4]2OVHY)-R;@EH->WM
M@RQ9J<\9Y^P-.KE "VB12WW6(W_L:E/F=N[5Q3K,;UB=8\'!, $.SQ&A::.^
M^2/2E:G".^>/B=CV3CYB$H5%$]11I:PP6=G<SI)(4=6U8TFB'+(2JI86$6XQ
M*(B+VM\2--:3\!$MXPL<(OP?C/@S>5\M1$W9VCE97>T83F"C5\9<LX@W=<(Z
M<SM=L3:"C56F8J27T6U[!2HYD%&<K74$[5R%U%A[H2@,U<%U'#SC, 2G_X(I
M@!%"=C<,Y@"#D/&W;R_Q@F.?:(72MUT9;MIJL4J0_QK1[73C!9N/(=H(]"94
M2+6"&YI\[SSW!L*-N)6AY"/'"T2"!)$4J4+VO*H4N)"VU,J*(L<]EAHV:S4D
M1]A*"^\8E;,PW4X>)K<,T1<: #[%!"X[FN5.W\Y]J/8W+89CH:LDV>M/1^(U
M4U'2LJ5LR>$&1\/01BSM,K?D2K!U\^I)6F%.4K_*OA>4; !W>#[&?"=7"*NB
MV/B]>\!4C/4QO4NJW8;F-31;U=WXNE*J714$K@Q;M:KDM8MA2 U-6W1/7JM4
M8F$GW:HE+\_GD+<$-Z.'JSN(]Q:(+@T3:FBVJGOJ3T/A]8:M:ID[*YZ^XQ /
MXY!,=8>F\H[T;1G_$$NZK*W.'%NUZYQ)R>:&\L7'6]5PQ!:&>KEG6]5-K0V1
MQ#Q_ZOZ93>0;XMA0VH5XNYY61V4S[4RGES9O5>/KB%-=S %77I-W]9<9G573
M;'GL0%+%(_W5HANJ5@LLS%6DEFJ[^A>S2U/S\O;MKG:0<_CW*H?RV5R]O]5?
M&3=7OUJRK5IP24)80P*[#3;"MNRF=?MF*W0U4@M[\M$*O=.O \1WC\1W(Y2L
MZ=5$6]4^VV>JO_)E&-. YW]IV]=^? /-3_\%4$L#!!0    ( "!$"ULB>;#H
M+0X  .FR   5    ='-S:2TR,#(U,#8S,%]C86PN>&ULW5U9;^,X$GY?8/\#
M-_NP,\ ZMG,ZC>X9Y.J!@4PG2+IGYZVA2+1-C"QY2"F)]]<O*=F.#AXE6S0U
MN\#V=">LTE?U%8O%0]3'G]_F(7K!E)$X^G0P/!P<(!SY<4"BZ:>#E/4\YA-R
M@%CB18$7QA'^=+#$[.#GG_[^MX__Z/5^OWJ\0S>QG\YQE*!KBKT$!^B5)#,D
M?O6KQQ),>[U5Z]_RYWQ 1X?'AX/1YN=7'N-2<93)\%\.-[^YX?I0/$&^T)R)
M#D;]X:!_-#@ZW31ZBB?)JT<Q\J@_(PGVDY1Z(0HP(],(<> H-^@#NOR7CVYF
M'IU["XKG7B2,0I<OR>%&UW6\6%(RG27H!_]')!Z#QKTOMU_15<I(A!E#3W&8
M"BCLWV@<^8?H,@S1HY!@Z!$S3%]PL%(7DNB/#^*/9VX?XHZ.V(<W1CX=S))D
M\:'??WU]/7P]/HSIE-LS&/9___7NR9]Q7#T2"8?[^& M);3(Y(87%Q?][+?K
MIK66;\\T7#_CN+^&PYLS\H%EC[N+_<RY #&D;"'^U5LWZXD?]89'O>/AX1L+
M#K@W$,K]0>,0/^()$O_]]CC>/#-AC!SZ\;PO?M&_CGE,<HR9R(SBR:<#T: G
M"!F<'0^$UG^6&B7+!8]-1N:+D!O7W^*)48 C'H?\+RP.22 B^<H+!0U/,XP3
M9H8#U= "5OD#'G@OB)(93HCOA1# 3=3LBOI;Y*4![YXE_SPE_$^1/-C]Y'Z!
M:1:(1N1;J+*._GKF15/,QM%3$OM_S.(PX-GN]L^4),N=S0'HMF^?QV:?P_AU
M=W)JFG;%_L3S/)GP8(V22]^/TRCAV?Z!/]HGV @7)+PSPG3!)87]7ECL:N-H
M$O/12$2J$2=<Q:YH[^)H^A73^0U^3DRP9&UW?C[V^& [O:14A'T6-488:I%=
MT=QZ-.*JV0.F3[QVP"8HJO8[QQ">"KL>\2*F(D:- :-HOWLL/S/\9\I5W[Y
MJ%&UM]KK6^G]K6<!W<.^>L_ACGC+*O:0LX"8FRJRD#]@2(V";><2&"R]5-MY
M!4BJ5LIJ3[G!B4?,Y6T3'?O .VP#\'"?B(_:0'RT3\3';2 ^WB?B+QX5,Y47
M8UFQE;(]C '0WMA8T_ZPFWMF<U7[0V_NI<U5[0^]N<<V5[4_]"?MH3_9/_K3
M]M"?[A_]67OHS_:/_KP]].?[1S]J#_UH_^CA8^[V*MM<@VD*&R)K88X%K 3,
MDO:P&4=Z@*@]='""X2K:GK$"23:(64(%=B!4ONVY-;18UHM90F4N@PUREG"9
M"UR#7-LKGLV'$9B\&J?OA7X:9@/.'?]WJ3U^2W 4X&"M14"&;*LF)!$-!_G_
MAJCWOI%?^*O8/K_E<\UDB4H[#5;0@3=0<^C#X>!H,.!H-[M+_.\;+:BH!JWT
MH)6B#/T:?QC[)<RAV!"/*_O/ C+CF+-M[XG'GK.][Y3UIIZWR XD]'&8L/5/
ML@C(V%_]X/LE8_S)URD5FZMKW:'WC,/LB=]7[2K-^@Z0B@TZ\7^QP_CBA2)D
M'S%+*/'%KA[_Q644E']0:*FV;$>U94\48NZ2^BBF ::?#C9=WJ-^*=+J!Q96
M+?HLG><QW2,\AM;R$QK/=;2L2(C;-+!(+$=W@%ZQ.%?"X]Q-&#QB'W-T8EWW
M"TZ,@:MH#J'MV"EM6CN[0P=/9PGU_.0_))E=IRR)YYAFYD'( 0E#J#IQV\/@
M/N@.<>-(C/HQ77*0:H;*K2!4G#JE0F95=WS^0/'"(\'MVT+4 CSOWB>S5:B8
MAV"0,(2A,Z<,-?!!=XC+X9G*(YC[SRV[7^'WCGOX@<8+3)/E0RBVDJ) U" +
M43QKTY->"L+&R T;$'.[0\[JX&(T%4L\.#M7?#_YQGNO,%'-CD$,0L^%&WI
M!G>'GU_B.'@E8:BFXKT%Q.O#@1NW5^WHCH?+$R3==*/<#N3MH1MORVWJCL\+
MA<&7./)-]9&B.8@!VS-T59K16=@=(NZ(]TQ"DA!LKE)E;9U4;/EI%/;@+<4<
MF@^Q_"<TQ4$38QHI 06:O34%M5W50K"Y9[H3BC=X@CFTX!'S>5Z*C0RJVH/(
MLK>J "9+;V]W>"D73&OSED9^3'(@GNPM.8!Y@MG?';X*AD'&5D5S)\@+QPA
MT!7M09%E;ZE$2T EN/0F=R>H%)T 5+R914&$V5M<:4(8V!'=X:XRT$ XTXB
MN+*W]-*$*Z/AW>&H8!8H50-YL+?&(@%<36T[U9R*[59[JQ>-#.IR**E?V:U'
ME*RMH]V3O*MF@'[SPA2K04L;@Z+'WFJ,YCWIVAZ)RM+NA-!U/)_'$82+>DL0
M$?869<!$J&SL#@N704"$P5[XX)%@'%U["Y)XFI5@I0"($WOK%V!.#!9WAYI'
M<: NPL'Z6.>E[Z=SX5,<\**#^$1[;,4L"R+,WAH&F#"X'UKCKG[:4?SD^U?*
MZ_&4+C/H+._<JMPE!#3M0<ZWMS!A=KX!?]<Z2Z%NNHR")N6)61+$U5ZF^EK3
MU)5D"S7Q7B;&3<PS71HCM_)COVKD'?^WE5._C6XA*AS]'=:/_JH._*(?RNI^
MM'*">9M[B5;V')T,:T>9-^K*EKTK%%>C%50Z&7FSN;QFEOS>HKW19:7S,^\@
M#S3F4[_,'8JA1=78[7GBJN.*@XG>/-M#=^'IGSU_E6]^]2)O"O2R7,KM.6"@
MNW4&[]'O3TO&C1E'"9[2TLU.:J=+1-P>YP5Z7&EJ=PJF7VC,&.^($]TTHM3(
M[>E="=[:/*'"36=\?1VSY'ZRPJ=;YR@U<WL6U^QOJ542I_=<;R>MS@IKAG-)
M4R>KJCCDZJ:_X(C#"<7)BF!.(L*2_(VZ%3C-2BM0WNTQ8R4OU0J_D3>ZT]MO
M\()BG^0.Y:CGXOW-_ZI&O,TVDD;([4%D*%\ N[M#TL:H<<0G.OB.)SM >B@V
M=GO\6(._>BA6DLBW7@>P>+(7;I$Z(+LS^+P;(>I!\887B5(.^7UB>X4G,<5Y
MNZ_>&V:W;SRS<3^3R*/+,7=5M@,HW@V+LT0HRDF*F?9M*XL/=>/%_.G&D:_6
MT/'!Z3W07WMS3>JJ3G6)'&%N<W9VV4QHJ;'CL]CN2)6X;(<<;F]!8O\>THT:
MG2DVON $4F94FCD^8RP%78M/^WQWAL6-$:L4>\4G)MK5$Z6 XU/)<&:5QFJ'
ME7UMLK3RA8'53L7)Z&R[G8K5,Q")4/$IJ+QYN&>[:]\B6%EY+B[%V<I*KA'E
M*MWD3P& 3V)>"'?1U?(;P\$XVN3^2S\A+X9SC4UT_'^-$?8*HN:\5+*,/!-U
M)N.[6<FQ5Y[MS-=?:HDGNP,O^PK7=3P7@YB!.%5[MSM..W.F=T-WZ"H&T_V$
MEX%\7"7B!4/3W1D&.;?;5CO3!W-+=VCD^5R<&L,W./_O."K<1*6ME75B;O?"
M=B81Y)1.+=54\7Z+GDD8BM=<MB)3*NYV&\H"J1HG=9K<]:U7V@+:(.9VC\H"
MF1*G=)K$U<58Z_?1I!=D-6$7IL_M+I@%VINXL;UX4)R>DHP;QLN3A"! SO%N
MW_;, >W["_18R$T:37HL3)_CG3$+7;:)'[M<*%=>)6Y"?4W4\5:9!985WNDR
MH8KW^)L0JU3A>*?/ L$&;W6'Z,QH\<WWSS'-JH)K'I8D$6N8NH1M$'._W;<;
MH2"O=(=$A;VBZF<[[BE(=3@)5&^9?^XSOO3_3 G%'&F0"E#&536 J/M=S(8$
M5@,6ZIT.%9$*HS^3R(O\W:)6JL-1>O4Q#K(C!6/&4O'"V_WD"4<DIK(/<TLS
M+5"#XUN<FM-93[J-?-6=_%M$GFV<WR^R R.W;YCZA+UOA.OI58@ZONRI55ZU
MWND0H:MTRH?_1[Q(J3_C5=S]I' %AGFTT<DZOA-J=TK!_NG0>+/3QU\>,"5Q
M4"WT;]_\, VRT]M^=G;FT4OP[62"?=V7/O:,P_'%5V[<7C^<T71&T,4[M[KL
M2UVQNKTO[2W>==F7NDQL^25GB5MJCKC"4Q*)^VON)[DC9!6ZT+:MLG;-X8^L
M@*@]4X,?).WJ$J]=G%S?BFCH+/OOVVM-4'!FE')UN5>[7 &=TX5T<1L%;22*
MLAK;*:+PM$;)H23GZEJR[5P*30@2U^PW%9BYT;1W=5M96YP87=&%.Z.>R#0B
M$^*++SKE.YH\-SW$(?&+I4Q^DO_BXO3DY$Q\TI8P/XQ92K$XUO^N ;VK0.\Z
M++R, /B:O S[>0U[04_YFBOKG^B5+I05L(ZJ6(4 $A*HN(K8+J;ZQ]!ET"YJ
MT'(Y5!:T +#ZL7$)NM-!%=U:"'&IWDK,1DQ6/ITMPS:L!6 NA I25KI+^:O9
M,FA'];ZQ%D)K*1O0=/E'DX=.CQOF(?3#^F]V+JS3&O*U?"RS8,9)8S-R79:,
M,.=5M2FGVV57NQ9)4IK:@MK8)DML=O%6,YP:;&TPJ^<YR\%227AJJ+6QK);V
M+"/5]<T;<=-O[5;,#'=MH#-VSI4R=V8,)7:<U89$J!UHZ,Z2(YDE]0$4:LF1
M.TN.99;4QUNH)<?N+/GBT?P>+)E%S4?DM44;M<Y&-742.*N/T,!AS6XN -LD
MS0A;C]6V$P/8+&EZJ$].&YIE*TN S9+FBBWGK?93!MBL$YE9];*@H5DGKLTZ
ME9E5KQH:FG7JVJPSB5GG]2*BH5EGKLTZEYE5KR@:FG7NVJR1S"S)=+Z962/7
M9NEJC?-ZK='0/,LE1W%U#V)/K<@HK_;M#W=]NJPNC<YK581\OFRU$%(CEA4^
MY\ ION4R1PU:&R6U.D /WG*L5)<J-(%2&^EE:Q56PT0!5NONVD"N06U]#E-9
M;%$[>U0?J.NK+7;G)G*LLOXX,J^(VY]SR.'*)ABC^K"JAFMM+E%>S =$\D@R
M7%86]]6!O-J)%'\\>PS_]#]02P,$%     @ ($0+6^$$B<'C%@  O6$! !4
M  !T<W-I+3(P,C4P-C,P7V1E9BYX;6SM75ESXSB2?M^(_0]<[\-V1ZQLRW=5
M3,V$?%2'(^R20W9-SUL%34(2IRE"#9"VM;]^ 1X2*1('14(@JMD/U;*$!+\\
MB"L3F7_[Q\?"M]X PAX,OAP,#X\/+! XT/6"V9>#" ]L['C>@85#.W!M'P;@
MR\$*X(-__/T__^-O_S48_.MZ\F#=0B=:@""T;A"P0^!:[UXXM^A/CS8. 1H,
MTM;_3)[SV3HY/#T\OEI_?VUC0@6#F(;\.%S_<DOZL^#4<FC/,>GQU='P^.CD
M^.1\W>@93L-W&P'+1L[<"X$31LCV+1=@;Q98!+B5,/39&OV/8]W.;;2PEP@L
M[( R98W>PL-U7S=PN4+>;!Y:OSB_6O0QUOW@V]V+=1UA+P 86\_0CR@4_+_6
M?> <6B/?MR:4 EL3@ %Z V[:G>\%?WRF_[P2_BPBZ !__L#>EX-Y&"X_'QV]
MO[\?OI\>0C0C_!P/C_[U^/#LS FN@1=0@3O@(*.BO531#3]]^G04_YHU+;7\
M>$5^]HS3HPS.NF?RJQNN"?*-SX^2'TE3['W&,;('Z,1ZD'B"Q6Q!_QIDS0;T
MJ\'P9' Z//S [@$1G&4EHD/0!Q,PM>C_OT_NU\\,,?8.';@XHC\<W4!BO@1C
M3#)'8/KE@#884-T=7YP>TU[_N] H7"V)&6-OL?2)'(YV>&+@@H"8+/F H>^Y
MU.BO;9]J['D.0(C%<&1[: %K]0.>R L3A',0>H[MRP"NTTU3U-\#.W+)FUR0
MSW-(_J7C#!Y/QTN 8D,4(M^A*^7H;^9V, /X/G@.H?/''/HN&1CO_HR\<-68
M'8F^U?-GX_E7'[XW5TZIIZ;8G\F4X$V)L0;AR'%@%(1D8G@BCW8\((0K1=P8
M8;0DE)1_V\^_:O?!%)*)BUJJ$*=\%TW1/L!@]@+0XA:\AB)856T;/Q_89%Z>
MC1"B9A];C1 &FZ0IFCL;!:1K_ 30,UEF !$45OO&-@1FE*\)6$)$;51H,(SV
MS6WY%8,_(]+UW9N,:ECME;[UK;S]K8\"O(>]V*]^0[S%+O8P9DEBKMN1@O%#
M#JF0L.VQ1 X6GZKM<452J5PJI6_*+0AM3[R\K=/'/O .VP \W"?BDS80G^P3
M\6D;B$_WB?B;C>A.Y4VXK-BILSW, ;)O8^V>]H==_&;6[VI_Z,5O:?VN]H=>
M_,;6[VI_Z,_:0W^V?_3G[:$_WS_ZB_;07^P?_65[Z"_WC_ZJ/?17^T<O/^?N
MWF6;9S!U8<O0*MAC2:X$Q)3JL EG>@E2=>CD%2S?1=L[5DDE"\@4H9(6H"Q]
MVWMKV<4RGTP1*O$R6$"G")=X@2N@:_O$L_XT(D?/QFDC)X-:U33_>(:'-G/\
M4M?L>8QJ3KI 3O0*!JY'Q(=C!T+ZH+PLUKUX07A$FAZE;8XJ.U"->OVH@0L7
MME<3<IE:.=[X.8,%6+Q29W4ML$52U4AMWZ^'+R90C2J X:@NL(QFC[8(IG;D
MASL;8T:>1TR^] */KC$?R)\%U. C!($+W PW[4XFDB+T0MKP./EO: TV83X#
M*VYI/=DS8.5]BC&B#),/G0(0GX:.0%26'\X8Q\ YG,&W(Q=X<8 /_1"/CHD$
M@?<C?N[H%8?(=M8N1-]^!7[<_P_2)F4BE<Y1A7@4R$TZFB,1ZG!X3 R#R''M
MZHYEFO9BY;NQTGZLK",5:J\7VY'C85CF@87<^J78W:\J6-DEV"-EY^1L6%+)
MNKLB8YL.:6A:ODL-',G$>Z0LGEU=[,9B^@S+"ZS\4ZST,0U?^ZF-7^-!+\*#
MF6TODW<?^"'.OMD, ND7/];XB&S!/?F(*T:#M'%5VR.=F&/_EP3>M%T1Z\:L
M1JB(FLP56:?IM"$Y+R<T4P070KFESX-<P! 1Z_AR0(:X8T(13X2?'1B$Q.SO
MDB,2,IDFZ_#-[SXD0Q]9$:.HQ/*>U9-8]0U<+&% WX#1AR=C7=5D*I57N:@6
M*;-@?"Q%5O.RUJL>!6V!NDU7Y2S%,)JK5$AYRR#2!L_6MI3#X"=5RJG!2ODQ
M+(%7II=L]:Q:,3%/J6[.)(9!';HCD!<P63<\IAM'EMXJFBI56'$[RU 6U_:V
ME%3!0#:<#7>2?OGHAG[SXP4!&T=HE3Z/'AABIG I!8_ $!&+V,@$?:+'S$>N
M&TO-]I]LS[T/;NRE%]J^R.0%9(;H1HZ93$.G>C0TH8>< 7"SHW:1:ECMS=()
MBXM,&6>:UL'QNWN/<;39H%8L>PNM] M>?K-2 )[*>K<IH(4M!VO+7K7/*+<U
M2>P5\#-#URC\Q YN(T0#Y #RH)O8QP3@$'E.?-9"FHW>;>3^AB#F;@1WZ\\T
M)>[ 8K9'Z92B_VG[$6A/SZ+NS%>SB,-LMZ-B.1T_++&SD4.&#T0/1''X",(Y
MK)JE\DM2 :T)BJG!3JJ%<V5:B,U@1RVP:8W4 IN=5 L7NG8\_XYPF-Q)@8RE
M?VQ!] *V2U>K(,"Q#V,"""_8"\$S0&^> Y(W?P(<.$OT$;/,VS2I?K()AK(W
M8:1F=JG'S+[1Z$8'+L #=\+<:F:0 K>0I]*^ZM0R)ID)XA_'R]@->?<!D.-A
M[NYMA[X,TMLN[*7*_=0IY<:O>3NZY75EOFIYW&5[?$T>DHIUVP2$=,' UB&/
MQB!E\=C(M*+IZ*4 +06U6<"-%O32G*1^F-2F:HK)4*:S]8G-?N*K=L@2DD:\
M7-+8M9TB7DB/5MIE^T$]<GE$$AX^?3H_.[N@X7<>ID$2$0*4H4T/UJ8+:].'
M M UDHKDH%^6H.?Z*<:(%6()%7!0F7\D!_5J&RHEL"B%E9 H@,3)19)#]JF$
M+*&SBH3MXV,F*-F .S_>!I<1681JD)(IL$=6SI(<M&')^!(B*T>EXDUA9#')
M(3LIOQ89D951[7G@X0Q YZ<U!R#KE^R3DCC/.JE-<ER<U>8BZ4L-#[53G>0X
M.=]M5%7*D#@C2HZ!THQ6-:(IA2O(E)+#6IK"R@.<6DOAYT_)(2W-8*7Q3BW0
M.FE4<K!+TYOPO4P[^[6//>YCC[L:>XQ1F%,-^6NC%O+'CR<$W<@)QR@]XV6$
M&9.FU2W-B"QFPE<13"PG<3P*W!0*9L:K;G!7-=<;1,R4*4OT52RHB!O>D_R[
M$"_<@@Y,"!%>O]Q9^NMT02%[*:*:S(RA2XZ7G *U*"@!(XJ[WVK6K4L0/-O:
M5D:1CRS8P2#A=V'P:DL!^1'LHJ,CV"/!238P=#\L"BNN:*KQ")\_?5<JIX*!
M;'AJ]9+#5]OQ?"('D%D,]X8#LW4'_"-5+W ^W(>)/9/K;L&K#+G>$^W-DLO$
MF;ZYDN6T-\1P!5QD4MXM<I0AY><5)L->Q5-EC%F6V #;EF4E4T*K@9W$0IP(
MQ1.$E*ESVAMDZAPN,BFW&KB9>]X$O($@DC-R,9D!YBUF(A/Y;E&:#)'3RPW+
M&!E8^G!%/Q'3&(=S@*0,O0:]089?@ZM,*YJ"&E-;^4I8O2'K6)IHYG<OG-]$
M.(0+@.X^'#^BQ:1&&),5,W!?[ _VBG*GSCKP;LF>ON[$W_:=J_T$D=3+F+YQ
M3ER4W-NRS@EKV+LG>O>$J>Z)1_O?$&4O,NNXCS2L:F?&^1X#O ;'Q#=[ <;3
M AC>P3BGN7;'!-ML<F+G,*#!+=&6]+MPLM=8 R8X)<A2PP%TM1%?E?'P']>K
M:Q X\X6-_N#[)<249@Q=TNQH]DZ4 6;P1&?F8LI.^#!D35&HN&WN-'LVU"FN
M"Z.D6N7MP2O".'OX_AQ74KY_&=\]TNN$=K#BGC5PVNL]6Q!.R?FS!0X72KP?
MV6D25[3;C?1OZF5?Z;QHM[E0XO4H 7LBLR0-9)V!JJF<TO!)],M:[BXYGXON
M'I-LDN7GCDG*H?:RQR0GVF)13ZL8*4?FRS)RJHV1<GF '$/U8_<SAM;=]@=9
M_4%6?Y#5U=T@_R"KU7O/_4%6S8,L$X\1N[!%:_4@Z[0_R.KHT%7W($M7[O'^
M(*OA09:N_.3]058[!UE[]07T-Z<D;DZ9>'-']V#7YLVI5GTJ_<VI.CK(#TSG
M_0E[!T[83_L3]E9/V$]UU4I(C@/Q!#C >Z/3DK!, I/"/(4(6<JTT^I]A-RM
MG2R($H]??6^65)7CO@22M 9%"DMRE&E"U:4$@K7N;1QI:H.T(<U3IH]6KR]\
M#] ZW3C-R);FM6'-M:S6^@<B.7\@DX%&52H8LAWY/GRGW7^%9.:/7L-IY&<#
M'T/ ?!)3I,SGHE%-"I:#F^CR%BPA]L+[8/0( [!Z)',0R/QY+">WD,P4D8LY
M:50AHGY<P3A@#2(B(F-$+N"C4;&&-D[E2I=%'CS[E=ZUY=3 $9"9H!LY3AH5
M<6BLG?A:UC=B0.2UO?N@2>DYGNS*Q@9IHA)_H_(-C.'H-PC==\_W6;-K[G<3
MQ+<%66\E@ELP!0@!-]U-LZVUU- $4;.P-ZI'P+#2K8=,@$^S([_ BIO+##NN
MU8,)XJ_-5*-2 C7U4K$EJZF7RAY,UTLE4Z6 F#V%5(H3O;)S8UZ4<]9*9GI=
MI\C4D[N6=Z5VY^RUN9NU6KFJC( M)VFOR=5)'V;9AUEV-LRRAGJ^VAZ**[)<
MK^C-__#&M[$@8R"'Q QWO9@/S2%,:V0Q+OP8%_P [CB8 +*$H:5TKFWLX>\!
M?,5DRJ0\W@?+**15QP*:!2L>K?)LB2)HU#VQ$R%30BMGF4;KXM <8_7S6%87
MXB,Z9ETF7 C_2C4$'KPW0%U4=C#S"'>)'*Y728R#Q Q4IQ.SYJ0ZG&F^,<[!
MND%*@U>$0T3=CKHQI]2W9'EE5_.M^::Y+H5W::C?M])-R-N;G2V+XH^VV^D_
MN5*]'-K2_;8 FMUY;^[:2[U9\5$<C=B9>TMVW$SF#N,1=4"CNXU1VSX_'I/-
M;M:WX)!=$ L$Z!E.PW<;@2TVA?J3(_]I-"G';K/LQ2IGUM\0MV*WF%*_)J6/
MU,3,- JO4JFFD>-$BRAV:8P6M'[7_Q7*;-92'+.OGT.53/:V [JZYO.IS$&Q
M8]'40BJ*WI70NQ+,=R7T!8@D"Q#I*F_?%R#2Z-/I"Q I3_+0E\ 1E, 9MGHM
MH2_.LE-QEJ&F<X/L\$FPH=QJU@'YRZZBMI!K2LHGO9LXJ]I-E*M"U]Q-G/6[
MB7XW\3/L)IZ(J=/3/?[FH=C*J+U"$;KFU6D&1K0\W6[7B<U!E:DPA-V1,)S=
MQ-VA[4!MD9L0F_*$('G'PQ5%3N]0KRMA7:]>R&,%(Y$,L5D#E Q'FF-0F!@I
M0N';)4/<C1%.WC)EE9CG47-<B6HE=FG<5*E(?=4,KF$8P@5WPU]LHG];63T%
MY_?U1<2:8S4>@(W!'/KN_6*)X%NL2F&L!I>H RJ0?^^W7@8N8THJ'[S )=>\
M<[]W0+!"V\[!55*X.0N[6*N4IK!)0S"X<I0A[(" ZUNN+'-*2CB_(-L%ZZ?R
M#;FRJ;$BKV9'207GKQ$B0HD0(.B^>A_T$]_3P&YOK+@Y/"DIX7P# QRBR*'"
MN0_H%6^ ^:F_N!3&RIW+E>8RS14V(5RY\&B,5)($7YF:=DL2H6X7)G 8B>CT
MJTOZY%S$BM[HPUS<W"U8(N!XJ3MIZ8-8H$$AGH[)#%N5[3W!(*6WQW2CA'3J
MWM]O@*-R/I5!:N0SHB)I'?.)=SCT%M2>OF,PC?P';\I*85>O"Q.T49^K[?1V
M7?/3GU?YZ3\U]=.?:TZ+<E'!U>5Q4ZXN-'-U6<55N=QA3:XN-7-U5<55N?9A
M3:ZN-'/%*X1X62Z$6).[7#U$!5P^P&#V M#B%KR&,NR4,D/1#BS:@T6[Z,LX
M]F$\/VD8SPT"KA>F@:DK0:6TBK9&><RK&-!=#:T 25A(J[)U)US@;$/B*J$C
M 3_-U= A)W8C5>PA$(AU5ARC&<T0 $(O"*.M_AT8SY *!\+5#&2CD:8CK/A@
M&KCX*V$KSN9,5S_<PXFJYOJU4.=4HHH#O0>)$["T5['+?#R-0>67LVQM",@,
MTHJ $[WG>"5P-;5BOC8*6M"4D8%BN(]]:A09O=Q#"[Y,"$MWTREPZ!9M4Z:!
MK9V:W1BDM9J<-2IBP7*X^Q"B_)/) T=!$"W&4\8[$[NH150F*$&*$;VE*6@E
M&<X2-_[5!%$7 #>J-M$\"# W38W> ")OUFA!J_*,HQ"'=N!ZP8P3#2A%;9!*
MY!C26^Z"\C">%E?M$T#%0).+083@._EP8R_);[QZ.G7[,4F--5E35$N#;GEK
M3R82="9H0I(5%=4RMC:JMP [R%LR<B=5[&P+!*;(FL=#LR0A#"E7O6./1#B+
M:/'@_1EYY.O5"^D!TZ!JAN!K]F&*+FJRI225P@-(IJ\)]6*)7P%V<V.$SN2@
M69:$&N9_$R%$+]YL3S#W@9-4":KQ&DCT98QF=F,O4]MZN[Z?, YZ$80 &B%D
M![/D&@B[0,]EJ9A-2F[EZ=66XV$#KBJ_<UDJ5,-%K*C8#ALSU^E=RHS'Q]Z[
MOGO7]T_E^OYK9K#0E=SN+YK!PJR$(1UR8C?*8+'?!'9_G=O5[>ZJ?OH[N^UN
MDL9D>B +L& 6WZY>G\#%?]%C5H84Q63ZA2NW]1%SHB>GW)V-* [\!-#SW$:
ML\,IY8_+:"U"/(BI<_N;?IW=K[/-7V??!^1- 1NFZ4.HE+G+;BZ14:MP+B>:
M5XD,;*)%HX"L$TMV":N34U1'(E15J*I#R_V6U:4OBI46I'*^T0LU%%ZV).!O
M#K@D^E=G4J97V#MP&6H6X\IR$'M^% *WGN!%1 :*7L12)GQ-P9/;2^784MBC
M%Z.Y?KU(+^$8'.@-,%Y;QP/$>!2&R'N-0KJ$>8%/-O4DI5;$5HQ\#P;I2IXI
MO1'(OP-O-J?5F1(?[;>(LC^>QO:%<[%5@I>K9C<&*;(F9WHCF1E@4ULK8:ZM
M3W9'YFN4S5NC>.8V%NLHO0Q] Q<+&"0(BV/*C>W[XSBJ H\"]W?J7@U"_I9X
M]TX-TG4C/O7&5)=. D7S*)/ ('TQ>=@.QM9Z&LL-A2BE"^$<RRI.79 6I9F
M)<UI%,S8A\E7Y70@":VU)N[/DONSY.Z?)6,4YE1#_MJHA?P1YY"$ON?&.]^8
M1<;1,6G,:FO&B3&' 14'Q;7ESCQLK 3>C>-@CDPEA*_R\'<OXN_"$6\;*C"A
M/DE?8%6RP*HN'TI?8%5C*9B^P.IF!#OOZ BVCK#)F!/E@682:-R_<B?R2CTQ
MN<C&JU9=57V]V[5<6XV/H[E<(B3.'531S@!95J#.I-AJUMQ2M=QZ98(-DB@3
M>R9738?'$_ &@@AP5HR;%AT0LWP:F0RT7N?G#<3A>)JB8<MXJYE!@MY"KM=7
M&6?F)V/7U./D2"HT,DC2!=QZO8BINFD>,[+X"9'MA+][X?PFPB%< '3WX?@1
M]8R-,"9K5^"^V!_"\:5>9P;I;2?^]'H4\Z4/MBH>L/7()3)(7UP^]'K\XH1H
MOX& ;"#\NX\EV4QRYI3*Q@;IH1*_WI1+63H4H>Q+#0V2>PF[WIQ)FR"I; 3U
M@H@,E^DVFNR]K\$4(I"T(X,GP'<?9)0EJ+W 1JN8U6\PH$<?1%P$VBSCD!O]
MH.ZA1MF"0CDT2MW4O( 2F6MY 3#9[P9I*X.L)#.3O?3"="!VXZ)EF"G!.*D1
MN[T)$A6P4+K>OJ<Z-=7A&E7)0J[*A4Z8\1J*,H4PT)Y4H2T7,&&C/5%4J^05
M@S\C\LR[-\FD)E<5A4FR3JRDESZC21\=8U)T3!WU%%^8E]52D-R$26"6TYG%
MA>;;E16XA-Y/-DDWW-!\"Q,KIB.W*=M439><U.VHQXA@FR)XD:.:T;P#"U^1
M)?*5UI'"(?GZU@_0YM7.*;7L@ [D72O;X!OYLA@;NT?RGLW]U5-2=6$\I4_Z
M3M;,:"LM+6.?)T]N@N3K<;3M[&)M M/OZ3^O-@9__W]02P,$%     @ ($0+
M6P3LK?K+3P  0>T# !4   !T<W-I+3(P,C4P-C,P7VQA8BYX;6SMO7MSY#B2
M)_C_F>UWP-6=;5>;257Q?M1,SYI2RJS57F9*)RF[=Z[LK U!@A*G&&0TR5!*
M_>D7#Y)!$@^"C @ -7<VTY62PAWQ _$CX' XW/_UO[UM(_"*TBQ,XK_\,/YI
M] - L9?X8?S\EQ_VV27,O##\ 60YC'T8)3'ZRP_O*/OAO_W;?_G?_O5_O[S\
MGQ\>/H.;Q-MO49R#ZQ3!'/G@>YB_ /+1%YCE*+V\+*3_RK[G%S#Y:?K3:%7]
M_0/,L%824QW\X;CZY :W!Y( >*1EJCI:_3P>_3P93>:5T&,2Y-]AB@!,O9<P
M1UZ^3V$$?)2%SS' P 'KT"_@ZD\>N'F!Z1;N4K2%,>D4N'K-?ZK:NDYV[VGX
M_)*#'[T_ _(UX/;RZ\<G\&&?A3'*,O"81'L");L M['W$[B*(O! -#+P@#*4
MOB*_:"X*X]]_(?_9X/X!_*#C[)>W+/S+#R]YOOOEYY^_?__^T_?I3TGZC/LS
M&O_\/[]\?O1>,*[+,"8/W$,_E%JD%9'>>+U>_TP_+44YR;=-&I7?,?VYA(/%
ML_"7C'[=Y\2C#U=##4@ER&^7I=@E^=/E>'(Y'?_TEOD_X*<! 'L>:1*A!Q0
M"OJ7_'V'&96%VUU$(-&_O:0H$$.)TO1GHO]SC)X)T<C7K,G7C!?D:_Z/XL^?
MX09%/P B^>WA5MJK=:.M0NEG3:C]&K]':9CX'^/R6T[4T7:SNN!/^O6/.4SS
M08^<US?<@:<DA]$@Z'5-PZ"_HF%/^Z!G^BGC61\->\HUS3. SGG O1^MZ)E&
MY$^?\4\-@.@M1[&/_!(B:4 QX]+VZ<1.6Z[:3KQ&JQ&9NY.4[W>&6Z4M9LC[
MZ3EY_=E'(5TVR0^7Y ?:9?S+WZ\3; !<;;(\A5Y>MD0[\9<?!)__W 1$Y*[2
M$A5>@CLZ5DC\["5X@=OEEU%]2@S29"O\TJ+/B>##OT>;2I\]%/P50I@-H11E
MR3[U4*_QJ&.5/:$"SS;"$L2*0O'EM\<?_HW*@-]*J?_W7W\^M'+V(?X8YV'^
M_H">0_+M<?X5;I&@'V(Q,P.N@EB.NTC&@>%7P&JS@(F"@RP@PA:X<(T-=FPE
MW^(IZ>W_0N_27G%R)MD@ =FD0TO(&3Z(<4D(40@#*@VPN%%*E#NX)]RBH#_-
MC\T00 2I'/?Z9PX,MP!.>Y2K+3*1,3JT5_AK??+5GR+X+ #?^MS,X I!E:/;
M^-"!X17A:8]O)0.(D-$!OMZG*0$79AZ,_AW!%.\'B=M$9*9(10W9=!U0*_-.
M(N< &3J@<48?$P=,'A %@#4 4;&PZ#]N8125GBSIPM62,KG@"P$VE_N&B .,
MD*.2+/54M/(GVF#!"XJBZV2[@['<[FL*&>6  %Z+ C4)=QC @Y(1@$B"0M3"
M^'_<HO0YC)]_39/O^4L7$232)AFA!-RDAE#4&8ZHT$G(4JH IF.1-L5:]H!V
M29IC1(\YS/?R540F;G3_J(3<VD8*99VACA*>;%-96!^5$F!:5O:6U6&%Q#B5
MR)G=;0I!MK>=#2$'"*+")=V(,F&;QNBG,$+I-?[NYR25+S\M*9.SAQ!@<])H
MB#A !3DJR11!14$I:V5B8'LCQL=/^&^B)44A:W:"D()M3Q*<H /LZ,(FG2R*
M[6LQ9U 5BU0ANV@]HM0D;="$ RHF227F'$7:R+H(0OT;YNE16$C)=IO$CWGB
M_?[X O%#N=OG-&X)&SYRLTJI9-16U8#?LE@5&@Y021NDS'JEFH"J J8+:LJ6
M+):O^^T&I<JEMQ0Q;:LTH?&&"OO<&69PD!0F"F""%L;\-O:2%&^?:(0<V3ZA
MZV0?YRDFMB\_0N_0,LD,K0XTR:)4<88_.B@EE&JHTDTQ H4R(-H6>/8$WVY]
MO)2&0<BB,3LF&JF\26YU@&ZR2B+L#)_4^"1,PDJ@J65OJKKR??Q4LN*?SV&,
MQM+."F5-4D<!MDD;@: SE)%CD]"ED*S^)2I@;(\KU_C'N_0I^1YW];$N:8$G
M/% A2PYBKG&$0];!$"(/[E) -.SQ@RZ-=^E]FKR&L2>W=V3B%I@B@2RD2TO6
M-<Z(X740AUDSF#FEFCWVW"=XLQ;]/^%.:2N+A2TP1PA7R)N&I&NL$8'KX Q3
M 5C'O/E+)KJK%$$)1YH?&XI3$D"J8I-JGSDP\@(X7 P2'6DL8WYLR<VRZ/XE
MB>5N$U[$S!C+H)7CW/[<@;&60&J/-Q4#5,[&7N01>?L44VX\V3R%>21ZIWD1
M,V,N@U:.>?MS!\9< JD]YJ48P'* "AH=\Z<4$I?LX_MVDXAZT?K<S&@+095#
MW?C0@7$6X6D/<B$#F)"5E_KCF_>"(2')_2&QF-F76P2Q_8+791P8? 4LZ8M>
MRIJ_/U0>^OW?>YCF*(W>67B1XC"1DS1[&"L!VCZ,;8DYP LU,NEA;"5>!'[9
MN4J4PC@+B4.TDQZ\J.$K1A*HW'6CEIQ##)% DU]#JN1M<*0\O\$DA5X>OJ(;
MF,,B6%%QW",6-WN6IH+</D03R3K &0UXTF.S2H<$#<(RP-2)LXY)#R_]Q/99
MQT3,&8&@,X218^MSUC%Q@BO3'KV<VN;*5)<K4X>Y,AW E>D)N1+ ;$.[L,\N
MGR'<,<*@*,_*OQR84_SA[]233I;+N^!3&,/8"V%TG[!E4Y(NHY_J^7DUI"N$
M9GWTR,C^W9NLIZ.E1?(-1\PGZHA]%).,9/BG+(E"GR8U^P CDI*+W-Y"^2GC
M&X=0\RK+,(AB^>W@HD36'/F48.ML$PK2P5I/_8DW=X!>&A!E=X"9ZB^6F7,-
MLQ?ROX__V(>O,,+ L@>$NQ%ZF.3D@ZO8;_ZA)BEY*$>V:8Z))^E\G;%'-4AI
M,T6;M3=S@-DG[ KW!F!AEH>1_( .:I;?A0?D(0QE$Z'L*\K%&] .67/<58*M
M<U(H2 =HA%>\3>  US0@"E9E.M=2'B7Y"TI!>FCE L3HE-O003-K@?!O8?YR
MO<_R9(M2.N=W<DM+T^ LJ=^1QES8K4:'&"W&M31X-F>\OH!Y3F9Y1@F)Y\5P
M2\U$!-,XC)\S$,8 O7ED,Y,$8!-&$?UK$H-]["4D5R&1]@H(MF?"V_@5]S9)
MWW'7)4^K*6*.C2)H==K5/Z?#M1K--[.- _R2(VL3J90,W9C)[E.T@Z'_\6U'
M]D%XW;\C\VW#])5T64O3''=Z=*1.*0TU.I[CM3>:N,"TWH#;!"P:P#,6;2&K
MK;)>L7V!M#4Y,TUM(#LWCK2G03 :P;&AH<EKV8"[=XU-?-PA/VE+^Z&;=S;H
M]-":<T&/&RL'WE@QJC89?F-B%^5!RRF3Q@Y;&)(=2O/W>XPRQ],,V0'NB+--
M;C:H54PN!=W0FVN 7)[M5!9PY4\=H)(^4G[69YK,A"W57+! [C N2#+6?$8P
M0[2\PEWP#2]MY'V0/(<.'7-4TP)?YYI2@4T."V\^<V'/U ,J%Y=*-  MKG&9
M!)=[_ M=WBQ3[=<D\;_C[9FDPX>/S1&H#:G.E?(S9L_-@LE\Y  MQ*C:#"BE
MK+O]ZEY,J8NJ*632T2>"U_3PU2786S>'BY$+6Q$5MC8?#K+4,VQ[S3GLF;[B
M45*:NQ)9@VN,"FQC;1$)L@/0Z0:M7:",!L0V<ZB*_2VI?+]!X<]0 &>F3BTU
M-Z%-8.+=IT.[3F5?S.\S.P9\[,)!7AN/9%-I>R_Y.82;, KS$&G&,:@4S/&@
M&W:=&W)I.C[^ BZ7+AS(Z>*4Q3;4]&T'.%QY'LGDDMW#=W(TB#?$^"_I'OE\
M'V4O4)\6#,Y _3O6F*;TU0NK;0(7+O@W!@/GBC04#8$=:XFZ/2!KJ_)\6V;O
M#0H0[HK_@%Y1O$=JHLJ$S7%2#;=./[$DL_)\-$'0 :;I8.2N5!0Z(&5*V47I
MO+>]G6EX:LIWY5W-J"XE6TXT&7RY%ZVMP2*4/!1X+D2I]L$J]J-%A\E/@W%&
M#2(]0XC-U2LX\9TYINL"J3ZKJXV(<Z:U=H?MFM(]F#->._ :J[!QVZ[/]3?6
MD0.]&J:#ZT5_'R;2L<(?.7@)E7@%.G*;Z7BS=,$4Z0&U330L?UG.20[MRSXG
M\?,32K<W:)-W^E=EP@;)I83;8)50DOG9YAL?.C%1:6#D\\C$SY<Y5@(^UKH
M\8%7;IJVW5[[;CWK!FZ'-[]+B06LCE;3M0M1+CWA:EBZ[I"PM5GL))]"WMI^
M74TVJ3 S<J _7[MP]JP)4V/CKD4NTP:-MB%#NSN9K&;KA8,;*AE.\9ZJ-A)N
M[JNZ+1BQK&7KN">97#C.ZH"GWF8=-!0[+3.#T/'H:8_FL_5F-7'P[6VB$[^S
M3KZGW5VS]$[JT&'BPHUG(2C56V?;IT'JQH0YB63-KF*?7/+"!BB*/0SM)LR\
M*,GV*>KP<?1LP^3=O &=:][2Z]$ VR!N$'+B[OT1T/F;>U53]!2PT1CX\6N2
M(S#^L_7\(XGW^TL2^2C-2%!W_MZ9=42N8#+72!?L9H81F33;&\YF:&1J1521
M3Q<GE["QIO<GP#1MN^+NTV+O0\']%4;[=C)/I:31^WLRH*W[>FTQ=FB['(]\
M%VS83H""^WC%[C0C&A?@__QI-!J-P0ZFX)6H_PL87^"_@(S518/[_"5)PW\B
M_U_(W@F!,,OVR'=@)2YJOZE(QHN974]%$-M+9EV&+2W^9CEQP?VA1B=:^))8
MSJK96D:KR?QBO9S3U1+_.)F/"H[A3Z87R]F(?3*]&(^6(#F4Z0,P!_]C3[)Y
MC2X 80B5NT$>(IG)P71,_SJ[ /C[=HCF%HQ.68=V4 B9[]-\43"ZAZ%_&U_#
M78AW.++X))FTP= P->!&&)A8E*4P@HO)W(5;1EH@N?"N2@F0N\R780P\IG<<
MG?(L8VD%1XOIB/*$_.7O3RF"V.!\IV]>QMXKT2S7)7Q^ENC!)2112S(GP IM
MEL@B1_I@Y#.H,[5R_L-SDY=D.5E,R[EM?+&:K:OY3VONLGZ=*8=AC/R/1>:1
M*\_;;_<1R49R@X+0"^4IC;H535Y[TNU&\RI4EQ:[;C_>>',73L3ZXA7$L);R
MP&<*5AR;_'9(;W-7.!)];VTJ[+W3S=D%4NSMS!K[.D3UG/,7:/?8KG^@!W6F
M+D2DJ[!QGE$F< &N\CP--_N<1I[G";B'3AQ+7,6^WH!TZ;#3UCE^9TSMBOH<
M8&A [CS5H*N_@^^][FCV?#J6#D9.2\BI"^X??:2J<Q5*/Z;@PA%+X7/ T]A=
M2I,N^]0 OT?I(S&>N[T5<DTK[I^NCD@\0C(U=E8&5S/H @-[ Y;XC1[9O@FW
M 9*4E1KU 6T&X'8 ;<@=;E(XV57EQ.I^.+R&%2[*@$LXV!9GMQ;@.IB[8"UI
M U5SCNF"@[)K/+NE[E#=AU!*6^17$["26TR4G72AV=ISDE<BD#J<N@"WCIV6
M,%QW!R^Z[B-HJ%BDE@"ZDE\U>3I^R]5D/+?I9>R/5(]I-76G#H%[FG&ZRK:.
MBOL8<WJ:S"V'X-A8=*W^@;(>9OD9\Q_ JFMV6-.PZU*RQ4X=\TZMP?(ZCE"P
M<N$V<Q^LG2QTS<X3=4YIZJD4[#).;O#)I=E=P]%TL7+A'ILN3EV6.6'X-0XS
M"X.#PI,\!(6\.7YU@J[32RK,1FVV1KX+JZHF3.FI<L$MIEERS'IE!R_9HJHJ
M6D<$J53:9+T')>!FZ0>A*(N 6B[0VH7 42V0;4I]B^'>#_-V#;JJ%5I4I+A=
MB06L1R"P&W0=Y.+%3$87B"$V8PF:,FR(@O7""1ZIT?&I59GTD:'&DMBGHO5/
M^!'?IXFW3RDI18$Z,DE#44]JH%7(DUB,S?J+V<1JYFUM@(+L[J7@N4GP"7K%
M(=47&,-G'3:(5<S30@5=Q ^1/-MG3Z 7V)PH^B-M,^:@ ;:5RKFY\_B>X36-
ME!9_9JM91[<$\N99(P4MH@PGS.*+IAMO8CV04A\F=[&%BH/P(&\EE*5<Z%0+
M.G/4!C#8.'.W5@Q-'()2)BAPQ,KKZ)$-JZYS\%W877* N&"/4L)^>$>6WP4%
M&NG!2$/&Y%F3 %SS<*DFP-(7C[S9RH5,]PIHHMJ29)-7O/Q6YM9?TR3+L!D9
MB&.O:Q\71V&CR=29W"-2=%Q5$B((=E32=BT:_H'+>V6T(DT_)K@0:2_"Q,VX
M;.R9E.U9MTJ6591Q['*G*.0M9#&3@19F+VL+LP!(&/A.))32A,G5)"G5JESB
MMN]Y/R):=?A7%&-D$4F<[F_#."2=(?<LB^Y)GH*NLL&+ [VZT[A,H*7)AG<\
M6GHNA&P.P<SMT5@;%^"9M<(RWC?:L9Y%;Y<B+Z3[1]+';9+FX3]%?@ M#9.9
M]#J!-W/I2<59P-I\,ENX$/"D#93/IW=09#RKJ5HQ7[EY7&M-8I>,1W!J+%%\
MIRG;@5'L-4BXY<@U^T:WMU;M&7W.C%TX)5) XXS?@\%2"MNYC5;A8$>EG[%)
MKGSJ!S'F2AG[(V0J(%G_796A; \#DP/DD93OK/T37<60=/?7ROLZC#MC%P+9
ME> 4;VW!G!^)PI]M[U[)N0%^,+EZ4\%)F8PK$0)LQI,T1%C@XG*\FINJ4**.
M(U& XR<5)ERN_5;F]1($XRDMV:EZZC4QVCDX#S;>V;VV:_;D8_1,(FQ4,WLG
M3ND@A%3#D1=4,!K=';7QH@ZDS=B%5)5*<-R47A&%B5\ JF#'&#NL0>1,F.7%
MW./5YA!L]@$%28J8W!-\0]G'MSR%2>J',4S?;W.TI8F:L2;^SH@N:ZQ[XE$\
MV]<QK^\$SA:F"KIT&H?&>BN(?[[,X9LK,]'9*6;NN9L/C?U/\VZ.73B5-]))
MP8Q?,]W9WN_PU;7 7K"A7UZ:^O3K65;[P]>!\OOL;P&*1U28J!]0C.0GF5)I
MT^^3%##_+G"B+(OK:+9<NG!DH 52XG_(";6L6!Q?4:[>O#<$6)J*J6_ND*9S
M55?@XVJS(4=V \*'KNJ7R?=R "/&+H0<2&!QLS]A07,%Z)T<S A)RB2%Y7WB
M#S +/4G?);+F2*,$6R>/4+ H2C1:.)'_5@-BFU2E"L"V _"*+,]$%UP"JNX8
MEV[":)]+[]!*I>WQJ058Q:A"E&W)%L%T[D)4BQ;(/JPJ&K =XU)>B;L+!M3+
MT-(UF1JS1V>:V3(U%-EU(0C7G@L;KP&0!]V2O'[!*BC#9A>H?T^12<\5]CZ1
ME;_K215"%OC8@"<D'I5@_O -6AJ+G=!BF  ;7Z:ED 6_46G;IE>%YW,8(^IC
MZ.ID3= "03B80I)44BR Q1\AY!11)/@49"$:@*HXPQ@VL5TGVUT2TUI9;V$G
M><0Z%GBD B^DE$B!G8V.1QOHPEE0#ZB<^44UP$$%_$:4;%.MEA3M"RV%(.FY
M0,Y*3KHF2$DB.B;$KHKX<(U<L-D[X*E2SIVUYDD]-XJ0 9W2AJN>R %S94]X
M478/UH?CB4TG4R^0ZA0U;I974DXE'3K62RW)IQBE @L-7"R]M0LK50^HBN)+
M1/?R-@;7IRB^=/+J.$J6R83M5<&1\THLR<YZT'PV<N$R@0Y&/G,-TP&5[^G'
M>M&;HDJ.HC;K.<W4CC1Z7$*Z\2: 2\_02.Q0&B8^-C?37'5<)0?9'HH/$/_J
MH8NB');M#4YWZD5;R19[\\*%JP)"4-Q953-%MIV8M.,J!GFCC;&80-U7L .J
M]$6$VV1_;$J>$W@:,'K&AYM]BJ?H>]9KRI0'E.5IZ.5%BLZK[S#UZ2UKU:,8
MT)CA>E6#N\LQM'=+[(1F[5(=["/[P"_YI1HKKP1>\1^0[\JZ(^XQS8]](K9W
MM66=['J=U>"ZNB&VB1V/T<:%>SDGZ((VTT\QL>L4JBV2<WMXT4F13Y+,?$'Y
M2](VJ/HHVBA@V]4-<3%;F19;?.?0G]BDW5"\\B*W+,=UBG88W@O,3C6CZO",
MOB1#>"97M,&SKFZ(>2;38J=*Z^5T9JKXJ1[/]/#VXID3ANJ5_Q_[+*>1 $^)
MQ+E%W[$- 4U.65"<T<#K!U+8,0MS](C2U]!#;.9_0%[R'--61)6^S7VM27>G
MF4?8])B>]SN+[ FCU=2%>YUF>\L?9>/W_Y(V3>*[JK;_*)'@RX6_F9N*(7A%
MZ2;)D&IGKT#H;"RX<DM'/[S;T=LH']]0ZH69W/TVH"'K6QN-;FKOX86M%&>V
M/IPXOW_7P"^<0$#"=  JE?X >_<3,%O5CG5B=W=2=[\NIX6WF7B!&R%<1\'7
M9K43=JU@D_B <F*[2YZ.2L%2R2 A;&G-H(8TBYF:K]'*A3-.79S=VR>JY,C$
MV>A5T9_#QO"*O@4Z#T2J:HEV'5V1$E"BQX(B1N,ELKFC'XY8FY1=\YY+AZM3
M-$;0U#4N=N+W,5:FCI%#''SD[NIQJS>=P8VI7.MZ#[\#J.N'K=4UF6N8O7R*
MDN]=B:'5*E9N,TFA2RXQ<?(L]^AD-1JY$"BGCW38E27<)J"-VK\E3K#<I\EK
MZ"/_P_LW; 3?QE4*NBLO#U]IP: .2@YIR.A]\X'=;#FG>K;"HF[FT]74A>(4
MQ^+GHM$K%K,$)X?$A8>6%!G2W?(S^I,1VABK;8%7JIY>Q@J?LU[&AI^;.*EC
M+XQ0HR=/R6EFF_-\E:5#EQ,_*NE!RXF^A\4_K-?0ZF4)<SWD ^&K;R2)/-+R
M.T%<O8CD[^0WCTR0N^*+P>8=_+@GQS!A_.=:\FYH>:X\<9[[!1K/)J:.W33.
M:[3QNI_NOLP4TCPDE.Z8.4D6"S[>+":F?!D:XZ,#]?@S37/QZ]+QT>JW\9CV
M8^GD1*()-3QQQ/LE50#W\)W>\[Y*4Y)%@OS,TN^1J;O(LF;[-BY=NC+<I4])
M2A/'7J<(;S')VB:ML="A8XYE6N#K9%,JL$$-T"1P(1U?#ZB"VLU,%01)BBV"
M5TR\)'W'YD2&4NM%>^JKY%UP&^<8>KB)T!7N6"ZC7)>20?-:"W[#4%9J,(-P
M-/7]M0.LZX.5,UYKNL01Y:,--EJS;$\<HG@MS7+;'BELMY,C"G2#V+\U2[V(
ME>K8&_9IP&@FTI[=:B4GU=1FSLGQ>HI<6)F'XN8\38<43[6-$^4[-<VC$&Z*
MPN9V-E%\1_%>%(6O)-.0<,)1*K" G/',P'S3ISJ"-F(^;45,!YF.54(62K)M
M+G6=FW $0]?G6=B=5H[FW=B%O"B:,$5IMZD\^+'4_#.9-&K*UHHNM/KS+<8S
M5H3\WN,E4"S<]&BV.OM-]&/FBT[DHA+9;()'61YNZ4$:*I,&X&%%;Q[*Z($:
M:9C^%9LU>^*#VT4HI]X!-O.X-\DHQG_(@[0[Z9R<S&,7 O=[PM6=C,I&7)R5
M;HN-:*@[@#4%ELIS!2?G3_EWS"PD1<SGS:\$G9L]!./4I^-V9XNC2>9$(4Y-
MF+JS0DW9E<G@/D4[&/HW*$!IBOS"&WH5^]37)7>F#&N)76-:CI?!V>_H'C-]
M].^*H%03::&JVEO;%;$MK7.S31\BG.0!VIV?+/#>B3*EQ^+7G>K*%Z!HCO*?
M-@A8BV;G/WI;6K#?#)]?\KO@6\;\JO7QUM-@'JWI;.U"B<LAD+G4%D3X,@DN
M]V3,3C!32=(,:(]%K[X92R]P+BJ-;9YX]<7)304"\KABYEQY'@D#S^[A.]F+
MD2 1STOW^$4Z>)7UIGN=EHKI<C6=F;K;I!&$<8JN<$=-10M@QYI@,32LD<KV
M<<[4Z4.&DSQ$NZ:.#>Z[$-]_+'Y=4Z=Z">YK+T'1,*BU;#O$A'\>I<WW@/"^
M5)H)14//)KTEG5 SN:7$!MW'7^M"O&M/N'Q0(Q,&*9-V;P*N#H@_D]_+5^1=
M^W%(]9TXZQ=W2O.HOZG,+A\OI[[G0E#*0-AM?AZND$1T-JT=[-NZ2*(9/"X:
M2WUM=F%QC-:^J8M".D5/!X$7W4_I&0C_A[D4=_2C<_,2W FX[$JYUMZ8.<N.
MWG*[KW/W6\E=[L+;^P4I^QKM??*WFS#S6,EO+%Y5_+9MZ4F>"3E^R$YQXU/9
MD'6R:W13@_2*5HHTWZO%TH6D.<?B[[KQ635D_<9G$<=/,NRQ+)>XS_Z>@%)$
M_78JL8.<R7@S.;NS1O],JB=J?@QIX"5SP?AAOK>?BT9[\/H^":,7'<['P(D+
M(7D]H')K:*E++D86VN"@;N78I_\4>=P"P2)DUV@Q,W74-]3"[P0OM? +HYY>
M9\G^$#:]8I@'/RPWS9P3L-?8M=[3F#0'S'UL>LZD^>/:])_"&,;>"6QZ94/6
MR:[130W2*UIAM4UFHXGG0@ZX8_%WV?150WHVO:D;L!Y"?O8) [PM;JO=!8\H
M#I/T<Q(_/Z%T>X,V,EKKJQN]%]NK2ZTKLEJZ+'',<K&T&CMP'&K!Q5G:"B-K
M=74Q"4"$V[C,<2/T5J-#C.V3AUA#SPY'M?,,=RJQ$X#9;.'$%<6><-5T+/,(
M$SIF]0S#5GTBGY+TH2K=<1?4:DZKMJ1R+?9$1JO-^>.P^WM%=&'SA9M*)3)X
M.3G$HFE2'2BGK#^.O9^)#0?)6>@X<2&JI ]6N8^$)(1HLK%>]MTI+XG Z#S.
MY&;/)UCZ4]>]))W@>YZ#!I79[;K/1#'H@Q^=F]O(4W#9!1MG".8^/A-NRWB<
MS^2,8T\Z0?Y'TD2_PHC,MX>*C>2#J]AO_J$FR2I.M"-=/KX5'<4_T#05#]A4
M^1@$2.Q^,(N 98.93A=38ZE-N^93FP] DCNUB-STZY&;9*J^8!,V.GP_C=],
M#S4^R>>69VD[E+8ZJ"97B_]/SA@3%X(7;/5;N/)=L)SMAV^X +52OTR"S VM
M/S84&"8@"!6_ !4R4$(#!!M@X/Y3+J<GYSK+N+>>C3Q35VM8>8K''*;YV9:\
M9J]$WGN]9>H";-!S&)/D*61/R:#__ZQASW>V6&T6IB8]K:(F)^S3,9Q!Y&YZ
M-UO,Y-?=[W813=$*H[(JQVT<).F697?N*)JBJVTP V^_#C52\NJI4B($J_5L
M[<+1Y2#07/+G6B/ QXMAE&0DAHW0E'(ZP*UB"[YJUO;AY6V<(_)>D8*_7[G;
MRU(ID_=5A ";MU(:(FQ^6:_&(^@ K93@A,?=-/T 2[S+5"]HOG[,(%82*L-,
MHE&2X3^1[5F/%3)X@F\HZV(0+VCTTI,$9NMV4TN*O>SSJ;=R) 6&$I^:33G1
M.TM.A&+!;RWS'TJ#[BY@>XM6K_JI&LJ/T+,K598$33V6PV*^7/LVDT0-1RQD
M&#'-VO9:3WO^"/(US4PMTG6J&"*;)O2*9!WR+#0E6*.ES7I>_9'RA]V.;0VK
M]Z7ULG";'*ZCF7"BZ-\,NS0Q'J&IJ9MK4D_YR7IQ8F?!^9:VX:-^_",SNO#9
MI??49I#$2<!+?+/#*7UDZ'8O<^UC[/<WU!I*5DTT ?P.XZRFP8*O@NEL;/-
M? C6'@;9"9UE6J98!Z$4PE;,+Q6!I))L-S]%OK'BG)HFEQ1CI[&E21.;ZU"M
M<\-6H'H#+,VROUP92_UTO&DEQW\R;[H]<THTNL<\(*=,J--3U]B.X"BS20S[
M*(.I25?KM]Q85;[#3;_8KP+/;G.T[;S<IJ]O,!BQ;Z<:L8BZRLR).5LMW A'
M' 9;>1 4)_$E);7H[O&1)T"2F19W@[Q,3RF,,_)=27SE^R&][D%*#M/S@X^U
M) NLC\C_6YB_M+(-BM[YDS9O:'X^PR.IINX3MLT6]/EH/K696.&\O>++5A?-
MDAP,GB '2!&!CB?_[[AMDJFUD;[UA)-_AKR?GI/7GY'G%_.^YQ^F>_S+WV_C
M+/11BI\*"7FZ2M//88SHU-!ZAEW"Y^>]'ES"8K4D&[W1>K2T>0[6!R-?+X7J
M@4*1EM1E%74S\!MI ]!&3FE&=#/I81^A\6@S'V,T5WZRP\;-IP@^"[HME33#
MH0Z@)8$D8FRE'(^G,YNG7MH N2TR5@)$ZW)<HPTH],%OI 5[O'E*MW&N0YNZ
MH'G6\#!%I#E(L7-'?XH"FVYA77R:E"&7R/$Z9HDU>#77GW!4PF;8TPVW9)!<
MDB67\,?3I>V91Q<C=PDDB8%[$U"K-\HY2"%KA4CRF4@J6%P\FWD;4[';FC22
M0>S!HA//29+MZ&/X'(=!Z,$X+S8&V B[3Z+0D^?]Z:-H: O9JQO5YE!+BRTH
MD]5F[%ODV%"\G/OCT 0XM '*1JQ$]BN[]83>\@^1Y)J_GF:1G73AK4W%WV@4
M3QD"_62#:2;POM>P#GH\1L/N3;#4A1*5/>'V)"7XC30!:!MG6M)J'MX/,"+>
MJ<<7A/+N2Q_]U4TM;_V[=%CD]'69Q;N90GCVBN"=2]U0U$I_?]$2H$V!6EMV
MUCU)'V\.UU/4\TH/?1:=,EV,UJ:.)776P,$=./4H&[^)ICO>1SPQ6W?2C%#9
MB85R".@>S*VU<\)5\V@:U[,N=AR>BT7-T5(%M4X_D1Q;5N9H-78ACWHWPC:Q
MB 9U(H ;^XDMZ_"[YCB)K!W6*&<MH2 [[H*C-73A\JP&1!%Q+D]$'(F)3HI[
ML5-"DK."'O:I3'*EN"$37 -R97(K9-F&/@C0W'IXF#9*CB!,$=0UK1C0M$9<
M=A=\1EF&T&&Y5+^T74JL,-D*>6-3J1TT3.6>J(\;,C-+@N[@]7T21I>*\S'0
M!0M7'ZF(<"R[ M.M&;,NV;(?84JN]I#$3X\O,$4=]JQ<W!SENB#7F2:39?<\
M%YO9RH7B''HHVPPKM4B"K$NJYQB7NB8RA;P]-BDG+JDPRY<8;!9+%Q(J:\(4
MI75DF1R<H=0C>B9+]0/:)2F->>Y(5B05-^@)ZH#<\/I(9%GR,F^)%B[020\E
MY]=A6J!2L^-B;F'7M% TU&COX7(T\DU%GNHXE/OB/F+4K$P ^F:REJ:]:>'$
M1'3!6.Z#M9-WCMK+C_M-AOZQQU _OBJ\-MWB)H\FU)";QQ!B6193LT0;8Z=G
MZG,''93\04.I!9B:I3//)O:.4R&),'N/9@LX,95)3NLT4POM$>-BY17O/I*4
MRMM[R8^AE8-ON,XQ8HM%+JT:'V 69G=!*YKHG?VWBU^ZRN;(UJ\[=>;I:;*Z
MN9.I/[<9<7H,YC8[:1O$&7B/T9&C;@>B,:Z3.,-]\"D6/2JJ50Q6%]" WLAT
MK9!G/A&X@"L7)CY]I'Q)O3#VPEW$G,Z-=BP3[1,,T[_":(_N@N+".HQN8VRR
M[>DQ#.NEY'EHZIJC7J_.U#FHI<@.IH/18NK"S#< <IN5E1ZH*=I>C?=9&*,L
MNTZV&W+!A%SO5I)0I6!PU>V$W5AII=(L:F8)-PL7LE#KXN0NYA\BJTD.X;(9
M4&_',L\>$#9$]^@!><ES'.JOLAIZYEBGW8DZ^3J5V-B.T3AP(7UU3[A\IC*J
M#FKZ9PD:^@))WG6:;>(1I:^AAS(UH;2U#(40Z7>@BB3J5BFR7*Z6]@.*^H)M
M$ZFF#[*B@;,PB:3^?V85D'HP24?+$)/T.U QJ5N%;>&6Y&'99E)?L'Q2D4K_
MO$PBJ=5VQ*B[BOTO,$<I-O4>8:3%)WU=0ZSJVYF*6[J*1;6T%0QLFEY'0.9B
M4,I6:":\LAV0D8;.PK<;M(N2]P+W7?Z"TAX36 ]E0XSKW9V*<MJ:[)1^-1TM
MK"??'XBY3;I#,Y1UM*'SSG+W:>+M4QHUVH-N.EJ&>*;?@8I@W2ILY[]93*?6
M;TOV!<L[SRK]\S+I?^S]YYKS1,D?N:PAUG2!K;@B$V09GH.5-[899MD#8IL7
ME=9Y+FJ399)53>IF@T+8U"7L+KB'*]<R259H \UF<^N+D29&[IR1J)VB9-7Q
MY]0OX6['\L#^=[P.XJ:?KY,LU_,QZ2H;/,'NU9W&<;:6)O/AS&;!>NV RVD(
M9HZ*11O4"GHI6@$>;L8V-7F'V@T*4)HBO_A$VQ''Z=GT?$HZH?9\MI181D<X
MVXS<]'PJX?*6.!,&A;3]$VT/+];,[_$09K]?8VQA3GZ2'[?*-8R>9W<!;QUG
MR\39>"V#8&+3)N\-E*L.45>DY]E4$1#-<V4E)R_!/LW0)^AAK2K.0VF4::F9
MRR*NVX5Z=O N'>8 FOJSN?7*D+W1"K(-7J9%"R HF[!NQ\$4?8 9\J^3[0[%
M&27]W8ZF^(G]6_HFA*_H'G=%?4X]J"63%M[@CC;-O=[-4%:,-_[,<R&5Q=$=
MX S!'#/_DK8(ZDU:"7 6UPG3"=+2460/PD,+WU1R"8W YP'(M<NCV3:I^HSF
MD,=BU,PR0$T7-I<]X4JY2'_X6"_5Q]H OQ7_NA-A3:HGH/)4H:SP@8T%A+%O
M(J1<-C5US?&T5V?J/-529 ._&GN!"XOA ,B"S0*]_E,[#3HT<![/;:U]C+VC
M#U=1E'PG01V?DO0FV6_R8!]516A$Q#S/5Q@K7GF61U,K>7G2]MF&81XL5M8/
ML<[:,RY^LM2GX9/%]OISDF66<F"3LF8Q?OUT;I'(9)GG/IB.D$.)B_3 \@$\
M3,M^%NNN@='LKLGU\V1<FKAP):0;H8P\[PX;;/=ILD-I_DXVN20<I(HDTJ.9
MOKHYVO7M4IV&NKK%-3.(D L;C6&H!<$7M!5JOU5-6.;GKTGB?P^CB#ID<@PW
M)(LN7AYU=[]]&C#'T?[=JK-47[L(&]QX5C.I'XN[S=2R'<K40TN -65]H2:I
MFY[@F^Y"+1,WN5"K(3<7:K%L4;09+98NI'+30\DOV#3KUI,#427MW&%Z9.K4
MLI?038-:'2IL[,8C;S5S@&&]P"IS!EXGVVT2@XX\;^?R$SRE"&;[])T>7G2=
M4ZJ$6=:7F1_XIJQUQ:ZO)]KV^)2:@*J>Q76E\]QU.V/,J71:LDQ,N0>DKAX]
MB&UV_-:DA^TM')D_PISES8Y]XH7%4PN*29$CW702^@V8#,;IVZUF;(ZN-LON
M"F=P8K-VX[&X>6=\U0X[0ZJW9)FP7]'W6A:7-(GQCQZJ187KT;9_,^;(.[2+
M=0KW;8--6,A#:Q<L\./0\W>[23!&O8[;K_O0)WYSRUR^"3/X_)RB9Q8\$A01
MF$_D;*"+P)JZYEC;JS-UJFHIL@EK.??G+OC,!D#FPFX;39#PR/04\;>R6RK>
M"_+W$;H+:I7$[@)A,%Z:/*=PJR3AB=HT=>?E1)T_7(TYLD&6OA=NIL9JN4J-
MV--VA0MJ*UHG] X/[9-?8_P/'\8)=NQ+;(=S%KBSNZ 1Q8S?]##[_<,[^2][
M+IUW=(:T9#"<<WA'&^&<_9LICA/6FZG-=^!D'5 QWVL$PJ>X*4#)[\)U"W50
M @LI(!$%6C;)T,;,\?VX[M8I/ZREHJ[Y;!RX4%?M%'U0QZ3X150+@,57.3*Q
M5ZE LZ])CK+/"8S)EKG(=!<_'YZ([@0_J$7S$_T1'1=-^ .:*^KV3293)^IB
MG*HC'0O (;@QH<&-Z:F"&T_X2E0A)]?[-,4_:<WY^NHVR*[7)3&SU;IL%@S@
MW(G\QL-0J\UU5X+7ZGUKGOOC%[0\S>_-5>V6[-"V9T=E#-9LAM4EGTS7:YM9
MTT[6 16OG^OA'^$A_ .Z$/XAC<4:'$KG5A#=L/"YUHJ[1M.5"Q5,^N)5L7)7
M#Y]#CH3/'=Y#%K].WY">$ZU"T\;$VMD1\40J56/)/2;K-7*!D;T!JRC)[%0G
MID7>2+^'[W2[&OOX+^D>^9]#N FC, ]17X8.:=+FOJU_U]4;-_WVV VNY6PY
M<R'I^.EZHGH+2K\%V+'&Z00-6?, O9%KV@X9R*36?4_ZBU1LT%L.74Q?7IZ5
MUAC#)73AB% ?J8I^41(_@QRE6^#C5EPH=DXR7&E13"IMN+"Y'#!7SIP791>\
MIJO)U&:X62^02CJ1!LIIZ\P'S7?8H(4DVH*BKITN]CE9UF[$^%%RS^X)SHXU
M6V#)+4?SV=+FM'8*[$IKLVRPX&CMM-B9U?73/M^GZ$L8A]O]]H%4 (NPR4&C
MDCXE:?.1]+5"CVK;QGI]@H<A7MB/:)@=R9)4BRY$8YZA2ZHW**!? K;L6XK7
M:%=\C3/O4/OF RFJYV&+_2:,]CGR>[XU/5NS\9X,ZK#XS>C55$F<Y=R%"R\G
MZ82*_:B\%+,C>>1)P\!G+3I#_79I[=JJ^>&]^%"?^CU;LT']01T64[]74ZSR
MP Q")V)%3]()%?6SHNSZF4VF+,UK?,>_';B.?R'><'_OY7=E.8BKMS!K/1&Y
MV/G9V061T$XF4PS%>+JQF6Q)#YW@7C[1 '<I*'0 4;(]*>8PI^'\9<F_@OV9
M@#6:.@8G.!WPC6E,I<!\0=/%<N)$'*0^5#Z!9:%ZJ.-8*KM N5I=MB]HNT&I
MY D(Y,Q12PJR3B=.B(Z+%Z#ET@4G50<\5;V\WYC"D7<B)9ZI3] KS@(*6@II
MH!8UY&7J@%KYDB1R[#T=K38;ZQ7*M!!R]88KI7(&.2\S!(7ZY-Q0"-NKFRCA
MAU2R")=!=D_R^F!4%4<L]<[+DL?W#*]O KB=TXFNIBD?=J^.'!S76FJL)$"P
MF*]LVLJ# 7-&#6T#"-EF9&X2%$63$TTA;*]&G81.4DD6HNIYOF?]O$,3HZH0
MG9FYJ?:-Q574[EFI6\<\9Y3@1=01*C#K8@EG8YNAV0.@JHA4JIN9=JI81GFY
M3SFS>BB;+@JLVQV^*G"79I&"8+*8V:P)=0QF>5U@8;'6'C/;&7?,Q6OQ"?^Q
M3"'^MS!_N=YG>;)%Z<<W+]K[I$8;28J<D?.%-]&>>D SQ<-#HXVIT$^-1,5'
M]X-+9I7D,"KOJMKVX1PQV,<_)PMEZZRQV@$WTC'8N9Q;16. /&50E1KXCML#
M98,7H&H2E&V29(YG2=#5<9;R!?Y'DI; 1#YQF9"9<Q0YO/(4A9=@VZS5<N+;
M#)37P<8[*/^#)-<O%5SP97,E^3Z\?T"Q][*%Z>^*$Y1N-8O5$B5=4)9,;.FP
M7"1X3[9TX7)]/[3JXHE$'7QX!U4#)V"AQ/+_]DAKD-T^W7W\0NJ0P?A=;NDK
MA U9]IUP*TM>*LFNQ,PWTY7U;#R:&-MD^?9XN:&%XVZ? -8$A>IYMXCEAE3.
MCK:$L>(U(F"UVC/UCUFJ77\T139#!CN!\2GM"F_ 68>8F\+N44K^ )]1>XW1
MD#<T_#J@*S*HA)DYN9Y,EM;=2/HPU>O(KE(["U^NBH1VZ-<TR;*K+;DYQ;(F
M(5_4+;6\(;[H@*[XHA)FY]S3]71AO<BN/DPN?4^I"9Z)*H!4MTC09CV8LHR:
MO@NJQ"SD.HS,X)6+&[P+WP&Y<0->(LLV*&@^&[D0RZN'DCO4+V5!@!"Y3ADJ
MR'3&\5#57#LD^1&-CIXF"\?;3(*%J6 </*F'B?^8PS17N0:'P&\/X@<8T4 =
MF(,->@YC$G)-0E#?$4QM)[+K-:Z#GHW11'4F:.J"GZ\G7,ZU5\K6RH5> &EA
M1-OI]O\*HSTUQ2J$)*?- \I0^HJRZQ>8/B/_*2'S*<DHPBYJ2I[<P+;,<?BH
MSM8I/:@AEGYY/)G/7$C0=8(N<*::CUF-6\R Q]1!GISU;B_)"/R*TO>[@%F4
MV7V*7L-DGT7O14>$5KZ6FKG"MKI=J!>K[=)A]Y3&J^74A0*T_= *LN73!FCV
MBVV1_*)J Z1%(^?90++O^UL:YCF*[PY)4AN;&U[(U%91!N^P/VQ+L%=X-9J.
MK$<S=6#CII=B[+\S>4R'X#^OP>Y/X'AA*F*1&>P?8_]$YGH%7F&N(Y)YU U#
MG>N$\CZ&7-QFUFCY[0R9+'.[C#?X_QPP1_10<E,";VN?UP%=NQQ2GMIG=YLH
M9$4S%$</FHJ&UHU>W:C6$BVMXDX6\NQ'\@_ J[H,5+4!:HT8"Z-E56;UKX5H
MJYH/JM7IBBBV5J57W.F:SV?6R_ -0JR*M"WJ AN^7O(MQD\E3T,O1_XUS%Z*
MM5MX2BP3-77FKH9Z.'$7R[&D0//-R'ZDK!9"[K2]I@0\K'6>K9#"_A-:]TIY
M4QLD#="'O9)"F(W =+VPFNFW)TQU*0R/>2&C)#LZ8Z3LN!YS\0;MDBS,;^.K
M+TF,WK_ ]'>4%W"%)\N=.J:.[37!'X[N.Q18\F6$@J7-.A,#H')'^%@;^$P=
MA#& 8$M: %O:A.G C[M8N"9U:=@/_J@!UPG_P.)L<XTFWL:Z5Z\/T.Y0P@MP
M?Z) D%.$LG*QW67:WG?)YK5#QV@0:S?X5@2K7($E)9[-L(WJ@(>@!U0!X6H!
M]EZA#*)2VS+EZ/6EKWAT\;RJ/F$32IJCEP)HG50",79<.I^,9BY$0G<";!,(
MRUX28> E6R+.9JYS'FV5546$IG7M0T/+& >G6K&J3]A^%DTF4^N[* DFWHY)
MTW<2,/(*HWVC%HOM,LPH0"FVSHN@6@F+.2F#I97% !M%E)LBS*+TO<7"A;5$
M"8XKC%P(G[4><@O1 XH@23Z9"&[\BQC?2]W0G#&@2]6LTD.7)1L/O-'*^K9J
M,.HNRN%_:5,DH&)7\PQF16M&*2GP:/9Y&$)URY14=*F3D@+=8CX)4& ]4'\P
MZCZ4#&O.Z6Y*&CT7I?'F1>5!O=/1N@9SIWG326 J,E'C2GT?R-*=D(N%/_5&
MK]?3L'LH?P+R.1$1JP=3+Q)V@X(D1?* V M0M&LG?8=>E(MJ3/LTP*;<S0:A
MLSOTUFR<8WJ7Y@2!/L(>_+%J;P\:ZV,>EGOQ^B<ELLU]_W&HCPSBMSQG'3!F
M7U&N&%*A()N_L>F_,77;7"MM4"=2F6F3B6V;"Q ?>S9U](13E<)^@-^_X&DX
M#6%$HNX?][M=%'+;*'TU<].*;A?JM.O28<D+QW-OZD(D8C^T7+ Z_ XJ+5?H
M]K<D_?TV)EX(E'62K"5L@5I"N$)"-239&=#$6\U<J+*A@[%-'B)*#M0+85?H
M\RF,P^P%T4KGG?1I"5N@CQ"ND#X-R:(TW'2*7+B>I8-1<*.9B@(J:\44J6!7
MU\O*&V7*@>"D67H9M%Z>_UW6WQCIPN4O,%$I5UYGZ=!H=]?*:WT*1KEP]J0!
MD=N.5#J@4@*EEIT]1X4(F^?*@<"?LVB@]2CP3<VL&CL,.4 ^LS^3#-W81'R"
M84I8@#Z\D[20^74$,U69(H6\N;>X$W2=.U)AME\?K9?0A7KOFC#Y8B)A2E]C
M1!+H44U 55U(Y$A,B!Q]#E\1N;B 88>D?CW!F'UX9XDJN^C6IP6#!.S?L08E
M]=79_A#.?<]FP8FC@8N,RQP!VA(X-,4(G!$J%WE)7:%R&02DO,S9%C)'2#&\
M.N>:$D7UF<W*B>V)"EN;.:7LB:XK'1_A6\1_TK-P<H?O)=R)+])I:1B,[NT&
MWHCME8NSN+@%7*Y=\+AI ^5<OF4D;T/3&9XEV]T^1^EC$N3?88I:\Z^:<7JZ
M)B/+>W2F&6&NH<AV/CX<KVU>;#@",G\8P9H 91L7W)KI"DT5%@(]YN]O6!1J
M3AAWC2YH6G14AP7H;29SY$(9U'YHN1689L[TRG!GED3'BMM T8\KS]MO]S2F
M[&I+ZE'_DT[I/<=.T@H[.ER.%^?/J:+O3SRV&X)L&*42J&NY.\%TC/G1S\N1
M2>C\U'8A].((Z)S#D[5U*=EM7@ 9U<TZ0T]6&Q=.O<G"U*FEPCFJ#_0D)7+/
M-23G+R@ZFH\W"P?B90;C/D]=40/^$JE!UQ H*NC,@\!4%06-(P<%0IG/Q!$?
MFFHCT)(Q[T'KP0@7HJG%J+@5L!2[ %30]B[Q'J/["K=(X?EOBAA,:"^ UDAB
M7_N<91J%D]7<9AJ7;F1<.BC\&R"BX#<B;)T-:;)#:?Y.8-'TP&5ES@_O3_AK
M5231T33('?V.-"C5K<:66P\/J MGE;T!MPGX.8F?"W/\J>7&.@$A)3<0/R1Y
MGFSE.>Z:GQNZ0R@"59F0]0]9Y8+1&*UL.MD[8'$96JFD*[[)SPAFZ"6)_-OM
M+DU>Z:57]5&-4L/<O*(!O#Z?*,19;(H/UW,7CI.U@7+S1ZD(PIKF>3,8/B4[
M^=Q1^]#0Q,'!J6:-ZA-VW+5:+N;6$SQ),/'EF'?G+OG&3E*J%8N$XA>'*O+1
MU=$RE@%,MP.U+&!=*FP2]S8NY)+K"59Z5(:J\N[D D]6-''F*2*%/JJ0*V8+
MH9RIB4,!\C"'"(38;8/-:&(UZY(F/&YF(1J@4CDO#S[MTSC,]RG"Y/T4OI&?
MY&10"!MB1"?<@]=9)EFX<R<+^VE3-#%R+N=2#6 ]4"B>O?YHEJ=[C_A'JSL]
MJE5((6XN 647Y'KV29DL<U3YP6IM/:V[-DK!#=%*D5RSVC%55S8[@M= O==1
M*1@\]^R$W3C?E$HS*V&UW(Q=V.CHXI1/2L2("0I-5R@F=0.I'/Q=2@YXZZ1'
M &J-XC;F% 4VBP8,P2HH%T!U*>LJ0_J"U<RUE8JI/*&_0;L4>2$]5<0_1XB6
MG8L;H0#2SHM&]51MLZBIE3\]?QALC_0K9^D<[X\AM91K411^[;MLYV4Y,77.
M]( -YY;Z8[Q-+@0BG;Q#HO0PU8M3_XH+4'T)G8GK7W,!RB_"/Y&ONJ BU;?9
M":N0=EYRKU,ESY:H)5Q-3;D;-((N] 'KKJE'7P&5%WL2(_V8Y>&6<.U;AH)]
M]#D\!+74]T7]],V5?>K=J7KM)VUEEHAL&2"XL+U!'0Z;J^Q#Y4"$!<&/_XY@
M^F?K201R1(H-D;+ V37<A3F,PG]R97:[Q4TF$%!#;MY:%\NRX(SI? )=N"^E
MAY+/=EX)E@U83W-.2\AD+*A7TMFVD,DDYR)XS1SG=8DB%:(?;%QP8*BP\;E]
MF>Q9EK6RV$*1Q(WAJ5D7]9E3+FMHN>H"6RU-,D&6"68YGP;6RROK06QS@6J!
MF!2\8'H %C'W2KOGC.\A152@Q]+R](9"0>82'D_@U%3$GX91JH'T#U4Z^1Z^
M:Z1*E0B;S] LABO*S-R49!D2D!\XX2_4P2@MF+QC2O;YD^Z17Y9Q"E%WLF^9
MO%$6J4&WB"069N,T1][2A6R%FC %=")J924DVRD_/FYW4?*.RBH'VK32T#-'
M+^U.U&G6J51$YZW&OJD+,2JZ]80K"ADJJW"1C/(Q"L(B[V]5E0*^6:<C6^5[
M3G%=2H:KO?6:[-0:+,!\N=@XD72D#U:QC0RU)S]S)@UQ;?=<GG35V7G2V%].
M3 U?CUHHO?'S<:PY/!0F*,TC.J7HC[.16>5#DJ;)]S!^SK[%/DI_W<,4QCDB
M7IU7E.4T O,Y12S 6O+8>K9A;LX9U+DZH7LUP(R;Y7@T=>%BX!'0^5L<I"G,
MV6 ?^QGX<0/CWT&4P/A?0(80^)KD"$P5OF0S)YGUT[&RO-2G,";;7.K:[#BL
M[%)G&7K0#,W</-WOAU]:C\M'FQR$6;:G[@&/:-K?U?4=XN%/R=(IO GN.G:6
MKHU9>5S>/!*_(>2]+<E+F[%S#D[N-SZA=$L J;V,8LGB]N1FOC3E_->PCG2@
M"B]ZYEB)3BP7=4_PN4*J:=D6Y@V]C;UH[Z.,+]DC\G#KZYH+MN[5F7KDM98B
M>\?&03"Q>7_]",CR@H3%*4-E@A]J][BPC:]'^;3BAU0;3*6:X:V\1A>XS;Q"
MAQU7>)[GSG9>&ZW@ +12Y *WK)^2LZ7V,<?K)^[59_PM$7[=DBUZ@F]%^?H/
MS <F/0ONTX3Y,N)]NB:J,:ZCST[ X602N)"/83ARZ3X@H*88R>](]@"V<]_2
MXGA%4K!W13X0D:#!K+92F(T4MIP4"QQ<H/G&!3)UX>/67%:YL%0X0;)VF6U'
MOZAR6B@NRHD%35EM*I@'$TTD55QAG2S]F75[K!N?A B5CD/7E#R$_.P3'J-B
M8=_(UC:)K-%+27*PK=!I7I!=<0V"\<R%F40#HB!*FJH \E3 IO)A6J;0 ]K!
M=^HIO0MH3^I[84GO.W3,44H+?+.PJT*!A85Z4Q38G*,&0.UR3: WLN>D%D\1
MJK8C5KMUBYWK8A_.6>>:-L>J 9M-@F#A0FDU#8AM3GU)XOPE>@>E8F=R=$-[
MODU^2R^K$U!EN/8#WBM\# +DY>$KND?XP<4Y?&Y[Q@:V87+7-Z!SS6U?CP;8
MQG^S")8NS'Y'0.?+TC%ED&)ML",!"7&\WYXG/4J4)&D=+09Y1;[M+A#,;7HJ
MIE*EZ$$_)$Q1RS.#VO-'&YMQ5/V1<GD*B#((S\&AXYT','N1;77I1P8=!#4H
M#9< _CN+49MZBXT+T0,\(OX"4/9"KGF3JQZV\SK6;+ZK5Y3BR>Z*KKMW^SS+
M84R,.HTS+;FJP4R//;HB.T:4Z3'/WQ0N9RZL7?T1\P8\C$%-VC8+PQC=!4WO
MV0/:PC#&V*IHG&NXPY_E[[*GTK,1@\P<U+T&1WNUP!:<Z7*T<*&(US'8.=[B
MMLB-&X_YRX*BN0N0E@T>'!_ *YH\BR%V@P*XC_)^IIB&DB%C3!M^98YU:K!
MN.D*667=$*R"DQRB?AZC3,]#?X,R+PUW@E/M3FD[OGH!8)G#OB;*(F!F$%H]
M"^P%DB=+)4AF)E@V<!:6B.;2+WC>V^ZWG\-_[$/\Y_<GW$)&$CR+>MFS 4-<
M&M2MBEZ]M(O!G,]6UK-3'(%;>UW<LO9 5#9X'EHB9H4^D#"-CJE++FN*;!U@
M#[R2"!8%1R<+:+,@90^('5-65#0":+DI8_-6<1N$LP!O8\QB0=:P8QJR.(]I
M=U,YGW6VPNSF^3J86K>^3H"?N][JX[8P76&$C;)" _],CZ#(;8HS)<S )A]^
M)>)G6C/A;RA\?B'1U\4K5^XXZ(=T.[Y/\:_8T P3X=I[5'.FTFX<W^5#9H[A
M;;',&&/?,Y8K0LKFD_6BS>FR*0#+Z;?:PT:D-<;N2Y"4 -B?,_#CEAR59;8S
M4/T5IB$)"J9=)Q<&)/M_@9PYUXL49-V[P@D5%1I7L[D+#N4.>&U>E>(%BQR(
M06R^0@JJB 0-QF9+83:BL3DI9FP%D_G$A0+E7?BX*]3-Z>4$?)$6 <)+=B<5
MU*+&"@0IH=;*!0GE6/#,>#FS7V],"Z'X"G9BBAA-> ]D5;P+OF5(F(U.2\.*
ML20#+K&'VN+, !X%?F"=-'V MKGS%7T'*=&X3(++/:8-NTXDL&/LI#!K=.V^
MB#7JGN=+R2*&:;-!9\^LJW^560>J\ QZ!T,?!$G:8VPL& SM4=+JO3W#82"I
M7$ADU@&/NTY\L!VHP@4H56S'K2LW;3=A1F\V%L="GB(%4.]F;)%.OXMR.G:W
MP>+@@H6_<.*FX5'H.[?C?M$"._WKLWX9JLB*%U;4? 9EKIWW\CV\V:.OZ"U_
M^HZB5T0C;&6SZ/#F3-9R/:[+S4*OP]IBD5V3]7CE1"3027K1?A4(U_X@[":I
MV)^^)T<^GJH5][C<ZN 0"A=-L)B'#6)U[?\HS!6"%Q!V\4<B+/Y.V66! >TX
M2MIZ)P?3EC3"\E8LEYNU"_ZU(^$+J+O\ U'W$WZ6)W@PK!DWB5OOXE#>DC98
M><+Q&(Y<R"M\''H!:U=_)-:&KZ>8;UDSCK*VUL7!K,5ML(5V-G(CF<QQZ 6L
M79\I_DD?YF/X)H[DZ=F$L6BI05VK!5'UTJ<#&(R6*' @MNH(Y#SUIB.KU+L*
M<I1*5O!C&G*,AL)N]B9CHQ5VW@$W*\]Z+,H)\'-G?2\H19#(_T'6\R-7"A?7
M[V/6;18+ F?KM?\'6J^;J,7GSV7H<K"G5;S9(729'<!.:E)5[[[%I<,8^1_?
M2#E[=B>O]^#*&BHBP&>C\]^5T#]Z/$%/A 61P^UN3YSQH1L%\HX:^5,\,F>F
M+3,T'[M0N.](^-QI*6OO G"GIE6C%Z#>+&#M M:PG6S,DMYW'R96HNPB\@A!
MS]2%&YVR;SI8A<N24P?;W'CH==/>,?5@ HU=\$9T NP.D*B4G'J=596$E!I%
M:.ET!$UEG1K^<@LA<V%1S?QE['H4,3RCLAF7QJVC"F>7$HL0\Q=S:,I#/7ST
M9*BY^,-:O=0A@V@HKPZM $U[F'VB^YOBXF?W1E=3UV1FGAZ=::;NT5!D=V@V
MTXT3)N$ R%R^)[:=K2[F-K:U8$\*#K%2#Z001Q0=;G*8W?-2?].'),^3K20-
M;_U#%B(X'Z.EJ5(IBIFD QU?HHE(:F3</==3?DIVDD=<?<(HY6W6R%344=?S
ME4#C;>;=B7(9ZUT>X.[CB;!WZ]BY0" %+[M"P"FP#,%H,E_9+%DT *K("23<
M*U<-L3\ TI3EU9Q5"Z %!,@D3BH(T+H7\ES[2@US*[<&\/IZK1!G)1V#T7CB
MPH5);:!\)D^B""I-4*J>+S/_!YB%WE>4LZ^^1^GC"\1&A31!OUK>T+RE _I@
M)RB$693)9.1#Z_.5/DS.@"": *N"@C]8&5#M\V0>"R/B&N_!F2X-4SG'M( ?
M$HXIQ=DV?N9//9L79WH#Y5*Q,-V>[#GCFO 1IF1US<I.4'*+5@.A(-N;H]'4
M,Q6^H>%1T$ J?J5C1'+ T4'!9@C(B#+X,8R!G^"-69H=_FJG@FO%N,])EEWE
M>1IN]CG9,#XE]Y!X0 IVB89/5Y<^)V\V6]>">:V/Z##P_%75<G@M&Y!]QW'@
MTS!I6AJCI@NE67L#YLX):M/_CZ21/X-Z,R!/ &OH A1-V;Y@V;IM]W5/EKJ[
M@,ZO62VQ<&/Y:#VVGFV8(^^@SM49W*L!=A=K-/?&+A0>.@*Z[$;E97FCDBZ5
M&<U3F&RW>%>5Y8GW.T@.K=+5E8G93F\D>1#%^\<]CWZ/4]Z*=99W=5"#Y[(F
M6-S/=#V9N7#9_2CPG"U!M0FU"Y+O,QJ]!/S"P,>FXB4S(#'W=WA>IVX%=^A^
M>TBK=TU?3O8 FJO9-8RB.YHW,KN*_;_!-(7RO Q'M6C4"79LQUM.LJ'-,8_H
M>+,,7#!J3M81X98W?$4@88JTS._W0K7_8F!P+ZRP626B;)>Y7OC&B@H.V \+
ML<H<%2?9$QN9T:[B//0+KCTB;Y^&>8BRC[14'?))8<7KPTQ\%[2?BC*&\T1M
MFYOE3OHPZL0_2<-L8^0%$V-A1*J9[PQ=XO+9UKX"'+X#E%_":GC6OH98%N47
M'3R$%T5LZ+GMB"S-:V\<_NWPMN%?_GZ-9_$D"GV*]#9'VTQP]J42//][T V3
MD%HNQ4ZY)R-_;C,041<?%]56UP%4Z00G6J<+9GU$SS3\17B$T2EM(9A5#%@8
M?-<49:<!BYFW=F&FTP(I3QA::ITWPH/4-=ZG'77+!4*&3K6D\*J#+$Z";25Q
M)S?64SUV8!/5F"[$SSOHC^\9GJ5( 9_GE,Y:\J&7BAHB0 ?4B@82.1:<AN8C
MJVEY]!&V*<&40$W+3BA=.:<]H%<4[Y%P<UY^5OART'+A0+BB&ISX;F1:R%IY
MPB2!\%U0P!4]YH8 VU:NUKYOBM\:SUJ!D+>=LIQ8W\4CM_+$?TV3+,-S;Q *
M]V"UC]E=E*4/1PX=P$OQM9\U%00[*FES\F![O#A/H9?_+<Q?KO=9GFQ1^K&L
M<T\R(>/_]Y_@FV*>Z=,,"S%:3<9S4X9ACE*M"6EX+SCK ;[C;XZHPV^#8H1'
M.0.HL>7UFF^;G0GN!NU2Y(4L:##V\1X[S<-_PG:1* UQY@6835;&+C]VCJHV
M6KYJU$&1#B&LJ=K>2>8O*/T54RJ%T<>W'8HSV?49H:3!':0<:&/WR(N5:>3@
MR(7TC9T N5TC4:CET$5,R<X+7A8&58Q 2X3E#A[-H;% 58UU58F1CVTNBID6
MTI8>?!DF4ZXJ8;S'="A\"DF<?4!!DB(FAQ<4XG?%*T^2XH4&IN_4=46N I+U
M""\E6+7LE^0P[EQ?5VR*-M[:H6OMQOK+^P7090[?.L/ISGG"P17=:'["/*1P
MX1LKRJ(Q8")HXAT?*Z-A_G):<>.13AI^2*XN9I+R)E))=ASLK:?&/!Q=E]<T
MH?(U,Z@:6[L*O?,4@^YZZ%J=,5<*^D0<L9KD01<?%[LI8H7M\$QJ;9'CPQ2]
MX,4^?$6'I8$M ;6=J\BTZ]8U;#/K=H:SHKL460SC(H!3%Q*H#8 L7B\R=C8#
M=HV5&?P8D>CBLV6B_!;#B.H@_Q%1^Z'8(Y"=ID_NO&<YL41>46L;2OM=G2P5
M)JIPNCO+UQC,8GFF1]3(<7GB[V ;B_EHMK%^U^KLO1-=1/X%U+X2//[Z7^%V
M]R]7%\!O>T22WIM<0[&=S(9G4TG1[Z](%MPD%S<9E:F&+-JJMV6++8L/K5;4
MZX>2VUA%^Q;]RHR(Q8Q^02+R7+ V)'.V1,:P]2":+84"+/1A-)KY+M2:4$ 3
M9LUD\T\QZX ?=Y@\Q=\866R'9#Z@;(\%[H*#0X*]#IQ;0GHDH=^ .8KU[U;S
ML$A7NPCR"OR-"R[@H;CEP6GDFH2F(^F8S76RW80Q\JF=S'9W&"L]@[J-RY F
MX>903]'4IKM/-PX;<!VMHHK"Q(.F?)OR#7E_O#R_6!,@KSG2",'8L2.)G"W:
ML9/:C^[X8/;R\1_[\!5&!,A5?@W3]!V;D'^%D3C&0D.-+1@3M)P[% O0&[>P
M<"TQMCWR SJTXH(1I#>._1^)>7?+V0CIPMVF/ECYG*[4H*(TK*E? )B#L@5
MF["02NX^1:2F<V$REEO>(JFIQ">KH<-JFTQ&4^A*^KG>H 4G5K3Z=;E%K^W?
MR_2A74<N1\4T:X]3SUX;C'L^']5LEE;M#92;(+2I966"(-ZI_/T>0\YQO\@,
MMB/&SU>44QM+,&8=&NQ!+-'*V/%-]^30"[(@R)VJTW%#I>X)'"WR"PYZ8]*K
MCR8O0)R%4C8OR/2$*9@"I!1R(?'[ \E\<!=\PU,;F8B$YIQ*@6VX%I/YPJ&D
M4#T0\\XSDDHT)2J727"YQ[_0&=K>AE >S5+[F$UCP68T<VV#)\(GC@@\A9%U
MFKV;T.P22AC>B^ESP86T*B),DCW4E04KJ%>XF#==S@+/T$/MC-P6 5,Z4W.M
MR#$C;]CC?I/A=1 O@A]?\7^>\%<I\B-+I<V]>1V ZX21B+*0H=EBNG"A_K,6
M2.YN7Z4$J!8@:N WHF@[PJG5'^7-<8FL-3+);XT+!=DT.EO./!?.L34@=M+H
M-%>'CR_#@B?+/-U[Y.SJ<P)C28]Y,8/%5200F]<MFS+,[-J,-IX+$6UJ=*+U
MJY0&$18_RX[[2Q+G+U%9D/0N(+B^D<HKURGRP_SJ.47TCKMH5ZBO:VC_W;<S
MU39<5['(\KB:K*W7Y!X&N4VRHI6RZ@ZM#Z6DVDF'KO;LN+'\',;H+F"=^00]
M6JNJ*##T.?S'/L1_?G_"U,Y>DLCG!K27]M_%^8"/'CL_\?8T;5QQ7;+U\ 6#
MVA<VJ5E-+A_NBZ$K94#^ G/\'Y9B$<;O(,Q 2KPO*36& :D<DN/_@2!)J1R&
M@F@Z4OK= );T^<D!*C3=&:UDE7PYE9M]BG^]1VF8\,0XHBUW:')<)RAIOA=*
MH,Q(FU;59%@=+KP'VU)V'&(X6>TMX-/F*&MVM,T+$CGPI_OXW^,O\<U3_-_Q
M/X]_(KI;F%_0-M ;W.XB=(&EQO\^_S*>WOP)?^$./RV:- ?_F*0$3  ]2N0$
MD_$=P11KD[1@6S)+D7/%&)/W)<2B* 8^?,]<8.>@2O3\A#6HGKTSC!P*_]^N
M#I,7;>)/M/#;H?!OLHG"9Q963(C4JA$GX.<%YB>>$\GWX(_W:?Z".91Y>/=/
M"(7_%$7)=RH-<Q([6ON09U/]#WAN_AW_L?P3_L\&?]V__2]02P,$%     @
M($0+6PF6?A9>/   ]S\# !4   !T<W-I+3(P,C4P-C,P7W!R92YX;6SE?5ES
MY$B2WKO,]!]2K0?-FJFZ<!]C.[O&LT6IJDB1K.E=O80%@ ")[4P@&T"RBO/K
M%8$$,I$)Q($C,P#NF$UU%1D>\,\]3@\__OE??ZZ6BS>49E$2_^T7]5?EEP6*
M_22(XI>__;+)/L',CZ)?%ED.XP NDQC][9=WE/WRK__R7__+/_^W3Y_^[?+Q
MR^(Z\3<K%.>+JQ3!' 6+'U'^NB"_^@JS'*6?/I6M_[[]SE\7VJ_ZKXJS^_DE
MS#!5$A<T^)?J[C?7N+]%$BY\TG-!JCB?5>6SIFCFKM%3$N8_8(H6,/5?HQSY
M^2:%RT6 LN@E7F#&%UM ?UU<_ ]_<?T*TQ5<IV@%8P)J<?&6_[KKZRI9OZ?1
MRVN^^(O_3PORF<7=IV\WSXO+31;%*,L63\ER0UC)_N?B+O9_75PLEXM'0I$M
M'E&&TC<4E-TMH_B/OY(_/(QO@04=9W_]F45_^^4US]=__?SYQX\?O_[0?TW2
M%XQ'43__V]<O3_XKYNM3%!.!^^B7BHKTTD:GNJ[[N?AMU;31\J>7+JMOZ)\K
M=G#S+/IK5GSN2^(7PA4@6U!;D']]JII](C_ZI&J?=/77GUGP"Y;&8K&51YHL
MT2,*%^2_WQ_O=M_,LRSZU4]6G\DO/E\E>$QB'@N2UQ2%?_N%-/A$%*)8ND)Z
M_>\'C?+W-1Z;6;1:+S&XSSV^& <HQN,0_R5+EE% 1O(E7!(U/+TBE&=\=D1[
M&('7]@\\X%D0YZ\HCWRX%&&X2S=#N?X>PTV I^>!?)YR_"=9/++[\'Z-TF(@
M<CGOT=7)N;]ZA?$+RN[BISSQ_WA-E@%>[6[^W$3Y^V X GV?'A_,7F^7R8_A
MRFGTU)WW8NW)D/_K2_+V&?G!%L-=G$58,L\I),O]19H2J14?/>29=)*U]4)P
MD+\4@ HP_"Z'"OX);U)1B&=:G%_X?K*)<_RA!RPW/T)<60L1#^9PL\:4!#1<
MUM>)NSA,\%9*IAF73_$NAG+[)8E?GE&ZND9>SF.KK>W@[R.8,4=?"QMTDJ'<
MW, TQEUG#RA]P@<?Q&.%UG[P&$(O!-<C6B<I&:/< 4-I/WPL>QGZ<X.[OGD3
M40VM_4EG_2BS?_15@/6Q9^@M!_)[V,49UBQ!GKMV=(+U0XQ3+N'8:XD86VRJ
ML=<50:4RJ4XZ4ZY1#B/^V;Q+'^?@5QV#8?6<'&MC<*R=DV-]#([U<W+\#:;D
MFO7&/5;TZNP,>X#H;.S<T_EXY\_,[EV=CWO^+.W>U?FXY\_8[EV=CWMC/.Z-
M\W-OCL>]>7[NK?&XM\[/O3T>]_;YN7?&X]XY/_?B>V[_+L>TP71E6X3V!'<L
MP9, G_)TO'%W>@'2TW$GKF#Q+L:^L0HJF4-V(JZ$!2A*/_;=6O2PS"8[$5?\
M8S"'[D1\\0^X'+JQ+9[=MQ$Q>CJ?ZQ1E9!<B.\X7_(,# O0S1W& @JH;PK/(
MHW >Y:2ALOV?NOBT=T/XM"A:+A[@"UK47Q@*GBJNEHE_P,B2O((G1X_.K2]%
M 8JV+T7X+_N7(OP/4'SWPLOR%/J[!X4E]-"RZ!_@-D=-/I^<IQM\U\[?']%+
M1+X9Y]_@"K6SUM[RD,.Z+B]2?Y&D 4JQ&JH>8>H?:+#I*%"V^+PN'ID_^:_1
M<J?\,$U6-$F5<DDX[-;%AS]U/@E?830I7-[AP?SS_Z!WEH@;385DK$J3,07:
M685<S>YGW&.[; ];"(E4DR#2-B!GE>0%_GI .+A=PI=V41XU$9*E+D&6K5#.
M*LRK34HPW$:9#Y?_CF!Z$P?$:8VR^%-;"XG8D"!B'D )*^W3"BZ7E3\>:YT]
M:B@D8U/:*ML*2X9X7]%R>96LUC!F[F*'[82$:\D3;@LH";*]6:'T!1_R?TN3
M'_FK@) I!$+2MJ5)FPE3QMELNXCM[EC$&VW#7#IH%$*"=Z0)G@U4RH'M :51
M$C"W14I3(5F[$H]PK= D#._;:(G2*\S#2Y(R5Y.CAF+7#GEWNU9<4@;Q]OBS
MU?<M_AEE[6 T%Y.UC#L>%Z-$B9,#I["\:XW%I"WS^D?!)V-S3%:K9.M97IB3
ML_M-7L3[U-PN6[=()IV8!F1<&L512UK*OVU6WM[025O'JU9B@I9Q=:0ADB#6
MN]A/4GPF*N12Q")<$2>D% ^#@&D-Y1"*"5_>G5((MP1]/,.?=P$&6/B$$=[X
M8YY*(J8#>5=/#E8)TK\( BREK/S/ERA&*DORK<W%I"[O"LK *$_B5_BO]^ES
M\B,6D'>]L9BTY=T[J?CDR;I8[>[3AS1YB[:AM#R!-RC$I"[C!BJ"5)[H'Q)\
MDEK^OVC-VUW;VXL]W<B[EK)0GO?Q@3"3(D@7\V$+,<'*N(.V(3FK*$D,_/+A
M-8F9I^]F*S&1RKAHTA"=5:Q/R-^D6+>JYCT3AXUVL39;B8E5QNV1ANBL8BW#
MD9_>5UZR;)?I41,Q@<JX);9BD3)(;W[Z19P]W4.FO:68;&5< EG(I%CU_N\&
MICE*E^_;%PJV5:_16$S0,FYZ''QR/&52&&<1D8Z(L)NMQ:0MXX;'0RC%P(35
MCKF-WM US&'Y#L>V++53B(E=WE6/C702U@R-)??6YF)"EW[3:\,X"8GKW22N
MB_J42;_DM6%L2/R?/S= 8((_3N("+9QC:NL?K:H*EL[BTV*7@*=PCRY[6=2[
M693]+,J.!@ZF$&9>H9U-]ND%PG697&>99]5/]D.K_ '8,7D?WD8Q9B;"5YAD
MN\0SW*I+<A%J8'F*HC7LE^>!=Y%E6+#EBLG'T]H< PA,_I+5&*GC3J,^$C^<
M:$(8]Y[/,M1%\E21_Y-$6V]PB1G,'A'F,/))<BO\BXLX./Q!K25=K8.Z!8Z)
M%.A]%/6/(XN]-[>,8?*(?(19(AE$OJ&<?O(KV[<V!VY@^.1\\3'4RL:X=QB7
M,JN3N$#P>Y2_7FVR/%GATP!9A424)T ,?,OT$/PHJNR">.^F+D.Q=S&)3TO2
M=\P978/U5L!U-2_D/F;.156MT/9N[3)T\I"B-8R"FY]K<M[$B_E]_EJ.GXP[
MV02(@8D<2_DPDZT+XKU+O?2CK. 1%NB6AH(&PW-55CNVO>\]QA4B_,O@RU8L
M5+X+IO,DA\NBI:R9FJQ1FK\_+$F.IC@@YZPUD0]S-651 =4P]2#\*.H6@KH/
M )"APS+K<?Q"4BR@(BGY??@=+R1DI-*5R"0#EAZB4/DH6A3#NH\MD*'&WY(D
M^!$MVQ[VRB95"^#ZGJLWSEMS54X#5BT$0<[-KG[S9%WIZNV [R C"#Z*4BC@
M:A$+4I:Z_<'H6Q+[O'-(:W-@VIYI?9C9P\98BWF0=U[D'12!K;CHXQSGCT#5
M@A[F=3;\$D$O6F+@2-QX3:<!KF8[SH=9'P6 UH(PI,R];<;5[ &^$Y,</KOB
MGZ0;//@:K#,FJ'@G +J^;MC34+" >MKG;@^\M7@/&7J^+M>41_2&X@WBJK2]
M/3!UTVP.U7EICP.M%A0B_YY687SG*HQ-!P+;#Y4/8\T4!%N+-)G&UMAE2P2:
MCX\&'^;9AP&P%J(RV[//_E3=Z?C3) .A90;FAS&$BF&MA<M(T6,MK:S(C;&]
M/3!] TWP:,.0>[O*V.AJ,383VA^%+OH\4A!X4#$FXD Q0(/B0&MQ/1,XE8HH
MD4H"0C4P4,/3<7;*XP.L10Y-9M?KN-L!6T6N/I'WGR%K)1-<+19IM@<;(<4"
MS59,=R(+YZB'EAVR6AC4O'1)DIE$>9%*_2(FOL%D8T!Q45PGROQEDFU2Q#^T
M=NH&6*9O.EQ/[KF,AW[8:\%=,O3>+ <KXB5-HP&ZX5GNA[&^"P"MA8Q)\H[:
M+C(%JW^'RTU;W.'>-^BX,5 "%-B3N4=RQ=VJ)A:N6I"9K&6US!'%4<YQ2V @
MW7$G8D3MJQDJJ%H0FI3WC" HE@&\(, HN(NOX#K"^R_C[:*= *C00<K,E<3#
M5HM=ZZ&K9CD(\A/PG.)+YR9]+YC.MN.$-D,( ;4]<%S5-^:J C%HM5@V.4XL
M.8QB%%158RY\?[/:+$G$%[Z&1G[$C%7@T0+;,ISIQ*/TFT,=8%;*E&1,:2+L
M<M #BFZJ36>J>2F+ :M2CC:W^UOM,HHO'UV4S*,$H0U-:S(J'_'6SH9;#841
MS#)GC>YM#^I]**3[BO+(A\O6$%^U&>)+"^Q=_.6PNW_ZH)&^BFX9:L/\>/:;
M Q;V?5HP'!3G@JIJF]!E@D8,D&.H_IRF=:4-WDV#BUAR3/!QVN"+3?Z:I-$_
M]A.<J=!C(F ZGFYQDPC-4)%4I'*C=1L<WF79II/RM@0 V99B3.0IZ@2*.T(I
M.V:W4XIR&J8:%? \&#@3><@_@?K:H,H-SSVT\W7?%<7H\39A!]YD[J-#]=H1
MM/1@WQJSXMLCFPY 6PF:GIH?0Z-4L'*C>]N8Y.V3=!K@:=:\4M9TUN 1T'T0
ML SM'9@DRYVAX)*N/"H)@%!%L\IFP=0='^=Q!._Y;O_?8[@)HOPPM]<.<G8?
MEBY?^+?'%@#-4!M)OG;='=H"]ATNDG!1ZU)*Q@X,'NTXXM_[*03 4"P'2CJ;
MECY<&9_[XY; 5RS7G8@'!4^T%,,Y!=&@2SKET:G\V"WF_"%-_$U:,$IY<6IO
M# +=4:V)A$A0A==\9.*@&72CYDO[%OJES?4KC.&+H-C;J("JHL!L/!O/2?Y,
M6(-NR7Q%/+UG>':2!*POVU6;KX4&"5"<4'%FK0(Z)KDWW H-?P< KF4']D16
M?D$ET"#L[YSS>G.[2C)\CBSAL(Q(M69 1X8UE9M,-[VUXY![S?PM3;(,;V@A
MRP>AU@BHFN=.)6ZJF_C;4,PU5=0N]*3,4R9P]*62 -_R W\B=MAN*N5CDIL-
MZ@DMEZ0&-XHQGTL2P!ZLHC@B/)+D[277C$=6(7H0>.%DG.CX*FG59$>D<K-#
M72,L6S_:2A:SNB*5OO]!.PZ65 PB "'R@XGL:3T5* )/<BZI!K(.BR6P#4?W
M)A))U5-%=%"U3%(SW0>WMI,O>(<74.J^,="0[J&).'$,56L+K%K*J7DIMBAQ
M@K*<NT4>-02V9IC-C&BS4B@-4BUYE4R5;(=9D>J,KY9:8Z"KBMLT$<]2-6VP
M:BFF!.>:NYUK,7HA[P)29UNU<A#CSC;R;H.%LW^;N$1ADJ)MNV?X$V4W/[&X
M,.0HANG[78Y6160NR52>%">Y2E*\EX23?!2$I@?Y)6XF/M1.+YY:MJRY;0\E
MZ%*FE_C>P#1A4 B YQ*[\0<8*'1HDC-M?4.YR.'LH!FP%>1-)0EEKV>Y=CBU
M3%GSFF]56$[E[G0)L\BG*[.U.0A,I**)^-GV4BH;5BV_UA14=!TM-SG+6XA"
M () 5_R)6'A'4=,QL$8:K DYF%P516*SNY@>@51YG!B.U<_CI/S&(HH7]:\L
MRL_(#47IET]!@!R$.K+-1L[;,P-\)IE,!9 4[4"@(,N9R%3L)N1V(V\[NIU9
M4))=<,<6GMFH.#8+*&C7%GBZKWD3V=8H$F9KHPEEEWQ.NDJVP^LJ6:V3N$@,
M\S,2T4X;&7 USYA<N$@713%124X8>,3;=;*"$>,UI+4Y\,)P>G7;F%)O/X P
MP4E65"U.Y2M:>2PC7J,IT$*H^!.Y+K.EW*H8.J!A&1HY.3KJ7LY4F=<S630)
M #)=J,Q0\H*P)"=;I*1PX4T0)AG07%4U)_*JVV.RB(&K)5^<0FH5GL;:VP/7
M44QC(AZ9/53%055+JBCE,"<4O'08Q8-7Y>FDM*&>D]N/:VU ]M[XW0Q_:Y1&
M";$0I+E$\]_ G#=(,TQ]:C<D46W2X>Q]_F>KT^THO=ZD>-5XV+)5C-Y]Q;&B
MV<4/F :%_R1'[YW[ SX,56-JE8BZC(W^D.4&]%.8+Z*:QU,_NSM@!Y:.)K+O
MCJ1]0<2#XB1$<@*6<<T^7K-28F_.\J\H?TW:=N!&$CT:+="L,'0FXETCK*_N
M\ 8%\8LHIQ@D/95#HP6!I=G.W+;9[O D5]T._F.3;9-4/R>4*U(QOCR8$?97
MY$V^$/XCPI"R*$=/*'V+?+1=+AZ1G[S$12^<!+>G_C+0M3 PYS9^SBT<N7D%
M>CE3>*'C-0TK\]!K.Y)]5$>WD_<;2KTD0U,]=1>_O%\7SETW/U'J1QGSQMRY
M+[S!6:H^UWMU?[ARPT58!\5Q5$[O"GC(L)V/I7$!M)(C35I.FX\H)^<9NFKI
M-$#%@]B=Z<8L $MR'?,##DO>]L?.BQ6I02NH-@HU4)W 4R8283E(@3R DDN<
M][ TVPKT_+E:(-J ]"YQOC5+WL0R Q&&)E=W?4^?R"/I"(;F"D[WR!*F2J?D
M[@BSU]ME\J.13LM6E)[.C;C'Q;9+N8Z,.VB=_!<;5 !JFJ8TO);.=MTD##VD
MR5N$-7[Y_AT?LN[B7:#"A9]';]M4\%R0W?L"T-)5>VK61I:.:%?8OL#E)MKN
M96Q02'WWJ1D;^NBL!5/?![\<+^DRC0X'QC%BV8K]:(D.,#XGHTWT4WP-V+ZG
M*5.[QG8>5B<5C=SGQ-%S8MB>'X03N?2>5&^M(T5$,OLGQ-E90<OHJ4-+/.?&
MUF@/+%51X422-YQ_B'"$TC<IG/S144@HPUAND[0(L;_"O$<Y$2$K9PN3# 2J
M:TW%&?/\8T5,-I)?5FMKW'UXA[42OT3>$EU@'G.&WMET0/5#=RH97LZO>$'A
MR'W5Q.B)D1%=H^U_:WC+IUNAO-2"?8#0#MUFN>C_+".BAZ#D)M%K,HSEA*(W
M$CC%6!:89, /+<>92#JO'AH1U&P;XOU;Z RSU!SA^QY[T7*)@IX#HH4<>*JB
M3>Z]M/-%LQO6VFOI_,?$7?R&)9:D4;>Q4",#I@'15.X58XZ!-HS=4_]-6/</
M*5K#B%0,+G"4"7'P_;DX\_(.DOWZ QZ$KC61K63,T=()?/=$@V,-(XJ[;<MF
M&+V\8KG@XU/!.\75EDL'#-4()EC.5U3?W4!V?TV>\/)PX?O$6R%[@.]D R1V
M-=]/-YC+?4WC+LN#2'\ 6O9DLAZ.N3QT M_[!5N^-:J)O%H1N84+N*1 =PW7
MF$CF[C$'!PUG+>'@-'2YNVE](?^NAB[#ZT2X"Z"JOFI\P(G/PRL_WZ"@O60,
M7P7@^78 9S^#>P">;2Y#"E9R.<I&<FIA] 54S;>FDG%T] $C EQRGD1\7JG"
MA+8Q9AA#L"'L<E\:N*1X<NAN.)$44P-4U/Z&)(R^EF!Q;I<&<:&-L2A@B4%_
M*M;&L<=+#S'44F-]B#VE+)$[RI["Z L8H:OI4XLO&&M/$0$^+'W7&!X+/D)!
MD:F=N.-C?M%]^(3B*$F_)/'+,TI7U\AC*%VT!V![=CB5%'D#%$;S4N@F!,E9
MP^K\=@SDXY("0]5==R)S^I2*9J.7G%ZL.O/<)NDC6F]2_Q5?>?'"ML\CR#\M
MTFE!J*FP6<[E@^A8''XM/]D'.2^V2&V,#1]H/D3^1)QBQQXP/<10#9S9U2\A
M0,G_2:#7&UR2>;)/&41^<1$'AS^HM=Q&01\;YFY^^LM-4%0/\8L$[X]X:MR$
M(6*=-<_+!S =VW8GXH39_YPJ26C58+?^4PWV$XU=$ 2NI\P^MFP<&50CJ[,I
M=QJ9#"<YOA0OF%[.RS./KTH&U?CJG*]G$B'IF_5Z64@/+BOIW<5ADJZV6N1'
M]XIU &S-#MSI%?OH.&*ZHJW&AJ3</%5)/)(H[%NK4]#N'?2@(;"LP+.G\HS3
M4>:4A]YV@%58H:14.K7RA@(Z.FY+'J4G4PYVT",\#5BEGE$+%Y0K^]%Z?HE>
MHICD%[\/MZ=8B@N=(#5P+=M%\]5-'ZB5MOH9+"G:.MR 1;7$H0)0]RQCOG>U
M+A KK?0S,C+FT-&X:!R6&BRU'4>K<=:],X!4VX/SGV$#D%>J[>QX./#2W&EA
MQ0?<7DMJC8XD4[.;F\#L5"T&LM+JJ F:C^XQ7)U0VP/H6HX^M9SV0Y;.-G"5
M#OJY^0U8-&O,#%DNZ]T PU65<&I9X,9?*%LQ5XJ<GR-?$OL8U-ZA) YVCP5%
MPC4!7PO1+@!$YIS7U]YXJ]'1SUN/,LTQ&X3QYQ3&&?X8$5Z9LKN(=BYB7HMX
M(_S##1;QED<4_![EKT=Q!Y058,0O #TTW*!AGY#TZ-99@<V5XA2RJ8;)66HJ
M%_++D/_K2_+V&?G!=CFZB[,(,X%AD8>4BS0E[RBKNHVW3"[HNJ9AF(M/B^LH
M\Y=)AC'B?Y3DBY)^03JHZ <N;G56M^N:'^R7,_P/T.#]"Z,4+2:@MP>>ZH?*
M"+[W?*8?-TND*IZIXN]?!,D:;S*W2_C2SC&E,; =1;%D^S.)2?1P)@E@VN>+
M.Z\RGM-5G OJ8M\6>)9E>;(#&T=010ND\7*C\36!E]=.,X/>'F@N<I693@X!
M6(-J( W3"F^*4)L#U;<"Z;F\Q]%)"ZKCRD?GRQ7\%+W$41CY,,[+0P9)^)\L
M([_F/%7?P:WC';S6PV+?Q6+7QVC'5R:KC$L'(1:B!8ZK.\T8\S,]>+(X?,8:
MO5PR_1[%Z(&KJ8HM^U3=72/MCY[=(/<M!MH6#'W&"5I[9;R$2W(E>'I%)%/5
M[J6Q;9K:C6E:ZV=1=K0H>EK4NQIOMO+YYLU9\1Z Z^J>)RFTC<;G7OQ"\[=#
M+T!U?%^5'?#65T?M<[D/_'G.Z+;0E/K4=8ZG+B%8$(I%02)AB-=9YIOWVEH#
MQ_)")"F>H,Z0P%1L;0Z"4-&1[#DG(N'6^<7&=)SQ_HR3 <%,P&[D-N;$EFYQ
M0#C:YM7"%6>S8E" 4#7LIHO9F88^\7/.[L,O*,L0VHM09!KP2 $*H2H]R8ZH
M]-NGA3#&>>XU-S E+_3$_[U(7-TRMTSE>&Y51 M,]6E+)F'D'K/.WW=H%, V
MU,"5E/SFF"F!B4<E ;9G>5,I!,V5=NN$XV.3MQ<]H1>R=#RB-<G>'+^T31:U
M<:_:$BWV5#*N($><"[A'4RB %=IA,W^2'!B=MBL!8F '.C*FXB+"TT#[/:D#
MRGEN64\;+T-_;G!7-V^4XZ"I-:T;%=&BI))B"#CD7"1(H9T"**JC-.LFR($A
M9+R@D  ?FH8CVVXO*FV*98*';:;SC&4]9;P F'K'%X#%7ZJ__=.<'@,,TW,M
M21OA);[.X%O)$7?OVS\%YJ,8/;"AK5NRHVFZ:Z1UFG:$++?&W[Z2)I:QL%99
M5,#1 K_I+C9/70H!'<_-HX\&;V&4%A71[\/2$PPN[V(,;E-8'[9,TU4I1 XL
MT["D>S^.I--NB.56U;O<9%&,LNPJ67F8U\)'CZ=1.@V IA;:LBW'8RVS?)CC
M^9?TT5V9^Y@4]<%@.ZVO7%+@!H$K/8OH2)H41WOLG3+&^>TKC&)\5"W>^5#Z
M%OGEF9.I)T+))P26Y2-+=G+@H5KJB'50$3EJ,8<<O:2%P+KIB$\(S##PS(^@
MHPY8!Y5[H^B(Q)VLR0YZ$0=?88Y2O*T^P:6HID3)@:DH@2W['C^&OCHC'E2&
MC:*U:[1>)N\E%T5AEVX33)@>F):G2?=E'4-OW2'O2ZZ-ISB20G&3%B^,W33&
M)P0H-!UG/JYY=%5UP%JK@3:>DO[W)GBI72IXJJ$U!T:H!LY'V*.X"&OER,93
M0[&J;K-G".F!VAZ8&-J'F!E\B+6*7G)*A$?K]3; [7_!.%B28IA)E@M?H<3H
M@6>X)I2==&FD>U1'R+727M.X'@O75>*2 MM%;C,K]#S5*HZV5F5+DBW9Q^+8
M7D$>H^R/;9%Q\C>F*9E&!'S#\%S9U1'&LR1S<0ZKCD6/M29#9Y-FZ!9SF:2[
M%PG>-BA "51="YL.33-345>PDBM<%>Y*ES!#P56R(D4YM]7=BQ3J>.V_*P9:
M](8>EI!O+>[1&0@]1[X#\FB;9G_\M1)8LO*>-O/EB#_BB9 #W4/0FX)G[1AK
M<"?$M3I5<ZM928)"]Y5ZRY0-^\K?O#5!B!QHMN5[LEW81AH9W1#7ZEN-F7YJ
M5Y@=,\)AZ&*Y3'X0:_QMDEXG&R\/-\M=:@Z:=K=YG4;]"M!"Z 5SWPI.*9A:
M22LYZ5.W)=_%/79H% ":BJI]D/G.!5DK*#6WQ?\A3=8HS=_)B868J'?O#,)#
M0+0'H)H^_"@7M,Z@)1>?^BU)@A_1<ED<4G,8OT1D82H*,0HK6KP/X(7(-^=^
MT>L/6W(=JET"Z [+>#L%4 /#=N?^EB *LE99:@HA5\+:XQ "QPUTZX,LO*)8
M:\6>QCMU/Y/R.YOTO2A()F868Y& P$?F[!TEA5'V+DDD_Y1$ZM!%^39 -PZN
MDD(^*-Z%'(BY08OV 137L;T/\L[4 W:MPI"<*GT_:F#3),9_]5'M(5I8Y5U[
M JYM:Q_EB-P;?*T T*2"BYZ+^_X.;2VTR.@<6K3M:U:!1;:I:D;#>'.>*8F%
M"U]>4E+ D]C;P_(MLY"BP#P4(@>!%LS)5[#21^ODZX9X4%01;4#ZKRC8+-%]
M6$NJ=!^VOIRER4L*5UQM%K(9V"U00UW3Y[/$MFMY5$G(C4BJ8&2DVF_MU1N/
MV2C[X_*=_+D%(N+'T[TSH-FZ[\W'*,V<]D/PRXU=8IO-M^X/7Y(L$UWR^_4'
M;$WQ/\H>,% $Q_%0D\H=23^+-5*UBV60/,61[*RI)*'K.8ZDX]E^*ZK&W+<D
M1]F7!,99O>; ?B1V6,M[= I\U3.DUU/MJT'FRCY$&G*#Q^OGE?(][6J3$@&*
MKNFB/0 %0M>81%#Y^.H7A#Z-0QUA]_#)!(_5ZD&EC]H%.P.ZA?>P25C03C$"
MNDI![M&.^E8ZY'&Y=HF%BMZL[39G57< +3=H?3\FMZXOQ7#L/JVIQ,#R0]?_
MH-.8CWI0 /L)#G5E&2<\(O%/T@T*OD30BY917AE'>YWJQ'L%JND%U@<=#@/$
M,2B(?L1Q4B1I[CP.FE3 4C73FT3@W/AZ9L ]#K27FLZ:?L-NE%)I2VI]@OOT
MN-FM Q6%J'%%/,^4*=(WDV@[T=E"(0"ZXACN%,Q5(I)NG1@\9*=]FKC'YRQ(
M+&L%&\?V)?&W",%^@!&&H3&%QX?N^AH&>"K7T=L-*5+Y-8JCU6;U6*SK>,,M
M\-\FZ2&J'F>: =T#5[6M9BV868R-D\CA^-(J+_L\?2MLE"MJYJ ?LA%.*1F]
M'MBJ(?V(><P>29_IX[/R=;3<Y"CH/F,[=0A"SS:D)U(3U11GCO9#/ITT]_19
MV:A$U$AV+W52CICUWG8-I/<++!MQ4AZS5SL.7+Z7O^PT*3MU"!3#-1S9H4:B
MFN),RG[()4Y*UC/U-<IAM&R=HHW"2%R/N;*S6;G,J49@Z+**4F#E%H>W9TKA
M^VKL';0#FN(C=PJGT&X2;I]6[=!VR;MDE4RMV/K"*-M^#&'7%D 3V9,I!M(N
M8;8VFE!V8:^CJB1+\YHZ\+_VJL#_(,]2P<;/[ZN$?!<_HS9%X*9M+?$IR_2G
M<A044@,/R"EBC\540%XPJXQ[U\D*1C%3#\WFP%%U*-T.QA,P31T,/)+CP7?C
MJDJ?79Y ,LI<.1Z.;60@5'75EAU2.&3]8J*J'F1E:6S+$W46'1Y3R]&FZLB2
MON=WDG*[@EI!259(+1?V5[3R4$I72J,I\ Q#EUZ%2&BA:E4('5"EE%'-^K?0
M+]])RY% %3AI3FD-D&5ITK.P,T=TTR[/PU*)NY_Y73S-.E/@U/; T$U?E?TJ
MTF.8BZ&JA-_O'DB[N[YG>)EL^;C(T!<C!BHYG,M.YM5Q)G2$5NFFG_^4>+)M
MICJH[8$;&E!Z!9:>$X./JA+^J"'ZM<^6,6]"4X)'!J!&[JKSF@S"H"I-C%J&
M8^>U2$^!SU2),#V>S2@(9+N%]9PFW5%6RI(4'5^.I%L,G 3S$RO<[U'^>K7)
M\F2%TIN?_G(3$,MWEI'BY,$S_$D_\O;H#!BJYJ"IV;^:-JW6$_$0O!^P7&=I
MTU=;7@BL1GEWT1>"A3JK-P+/45$HRW^[WQN![@6!/I_B+)6$1=X(*F@S?R.P
M;,5$LAUHV1(6?2.HH$AY(_@*_R-)J]699O7$#9OM@*WH6C G%;!A2'@=^ 97
MZ#X\X(GU.D!MCC$H4)-MWV2+MZ$*/AK);P.-$@67[Y<H]E]7,/V#_3S HP0J
M\960O;_T6+V$@4FV23?YK+CDO1OP*$&H^$KS&BE'=<+J$%0F!>HP95+.G=^?
MBBH#=\_W-U])J0$8OS,OR]3V0',]Y,N^+@DM:,W+,1_521X2*F,)4^*'C8!B
M:58S<>A4!CYEZ#8E3D%UD@>$!IL/*"4_@"^H;?<@-"P2$(9AT+2*3,8P4!UD
MFT(70C5M'S^M[0JO]K[":[.ZPFO("\8M[W!1YFY#OZ5)EEVLR)>W>9OV&CMB
ME44"'-\,FW;VR=[8*X$VIXH02KEY3JI E_MPEY2%Q+<Q#L0T"J"JGFW/)S]P
MN]I$01Z'B$UK@=/;%CBM]P*GSVJ!LUS=@I*F$ZMZRC[9$7URB='CM0-96CB;
MJ59II'6J=83<]V%AC=(H"?!))\TEIN;^.UQNMOJI4)/WMT>LM_0-95>O,'U!
MP7-"UAJ22N4GJ=K&&"Z]N@-^X ?*!QD]PR0P*-"77NPJ>4/I^WVXW?"SAQ2]
M1<DF6[Z7;-$.10*40,>3P)%MLABJNZY@!V6$HAU:MU_]/8URO/7>AR'MI'K<
M#AB!Z9JR#7YCJ( .36ZBIC-MHLC30NEN^.?=1"O(^UQ-?3;1FSB8\/O\-Y@2
MV\0;:CL#Z[W/P+MN9W46#A4;-6O 3_J]WE8U5YG/\EI)F/U"? AMYN_UKJ9J
MTBO0LR7,UD83RNS>ZSV\'<B>)%U4P(:QFQ S?*_WH ==V;.!+=Z&*OAH3J&1
M:;S7*X:O2\^VW6/U$@8V.5>+T=[K#=4+@HFH3E@=@LJD0)47Y]PWU%Q5 UN=
MV=;$!%)9'^88:NZ;&H*R9PQ/P#1U,/ ,T\G)W5A"3_<<V>Z40OM\TRK$1U4)
M7[H;B^7IH2?;@M-U16\SA;:BJL0L*0UETWS$"PFG40!D:&K3Y6!6>A*%6"EM
M5%MU+32]"L3)[KUEM*V7QYXR0K1 @T%@R=ZTA5;^YO3IAK!2T*F":+>%USO%
MF@M28Q&8FCX!Y\@^2NJ*L5+3J.&VWV,LJSR-_!P%5S![+9.DT[;W]M; \!13
MD7WAYYNT6G9V#J!39*]F/4S07MP8) #YCN,T3GTS$+X0JE.\1Q--7Z-UDD7Y
M77SQ-8G1^U>\VZ'*J$US7N60 7Q\U/PY:D(8V2F>G1G>L_<Q;25B$X' <"U%
M=N*%7IH0PR7W-;HM]+FJ<O+.-&;1R?"2ZT)3MHMK5Y5U0B:W'%"1DN ;'EYX
MKG.]J%H:8PG P))]UNJI(!:>0=5W*&M:5<^-MJ'O?@\TP_2LJ23IZ;)2-2$<
ME[\Y[_B^+KTV2M,!?6P?-01&X"G-R^G$-<#!4JJB$3,[9$P??>L1+2%),Y^T
M) JBC/H./0!DJI8E.Z=8GWG1!V2IKE%#4&A\M%PT.ZJKI0> #-6TY[8Y] 79
M> F>5&EM>M9VR^A;6_L$R=O/6EP[4!W?E>6[V3"0%K%/9?G?+K;C.AVP+,>5
M/N/ZZD'0DMP*>,P\2E/TXN4/C"[=X-.9'C1CVV<]3GKAWQN2!(>-NQTV<1&N
M&$@<-GM,V3>4<X=':W,L!NA(?W\==1BP<>XM5;/*MB:\O;?F7#,'[N_CIEX[
MZPYONZ'K2WH7OHOQV1%W^_X(?WS%BT4:P67Q%$3XCUK/UR4ICQ*$KF-*KXW4
M5Q>MTU88LMPH\!V;OR?I'W<QN;VA3$23!^V!Z9JJ+]O;Z#3Z:P<JMU#HCKG;
M*(ZR5Q00*Y6(U@[:@T Q/.5CSKIVH(/>=<;3VBYTM8I6%=!<@P:$6F!(3_5\
M&NW1P>Y?A.9VO-V!PZ<X 7WC5L P5:_I__LA-%R'US<F<2YGV-:D0XWJ]%W/
ML*/F'CJOE<HU;+?A<G:>6=@S--'3%=V<VTY9R;EU)E( SCQ T4*>;<G.1,26
M,%L;32BG"5#LH));&*5D0T:7[R3?>WZUA!FGLAJ5!&B!BY!L=],>"N(CDAQ\
MM6.P8"_[BB#95X)[?(3R-VD:Q2^D<';V/4X\<J0BB._B]28GV3AB4I:I$'X=
M'2]HZU1?!+X-?3B1EVJ^WMG#Y52RD3W:\/4J1U^B-T0\>F'\$F$$6ZR7[]NH
M$X%50KP3$(8ZOL)-8TQT6C=Z8)2<=IG!\IYA$E_$72"Z=01,5;>@;-O] +UU
M'0!,(4@>!)7;$R_RY[ =0*%F:U-1X:G7X%9]4P0R+ 'T<%?6TENS\/L@L3&O
MT9H>FE*Y>]*)@&7IKG33Q, IUJH_$=##TDR/X)>\PL,4I4])F/_  CH"S56K
M"#DPD:8XLJV+)U%P)_C#JF*><B\NG$9Z;;X%)5"<T'9EFS3XU]^NF^HA.+F/
M:PPV+WQ_L]H43G@7JR3-HW\4(N^E3TI?P+,=)9Q(D/2(&N;!'=,#9HKFY-84
MS_90<_*HF9[/:DXV'4M7)7GC]S0G.XKJ32,/;P\YBYB3*X S-R<K-C*-J>V1
MAQ(6-2=74*2;DW>\76XRS%U6U?KE&(N89,!#O@:GMM5U4103E>24; =UG!D:
M.BCW;*D0-EW1)6N$*>5V!;6"&J80RJYY"XG1(8_$*H%36@-'#0)U*B'!K<([
ME+,(EDK<Y_>%IQUPWC,\H%IB9T0T)T8,+--2M*E$A@DJLB.T2J_B1_7)Q#A4
M9C[.+?R@&0A"P_>GMDLUCPA,N^8ADID6^Q:^:^U'>>VNY0R]:QGSO6LAW_$:
M?KZ3OFOYR I]V>MH7SF+W+4J@'._:UF*8DYM<3R4L/!=JX0B_:[U@$<9L8NS
MKU;U5OBZ ATD>[KT4$,K",E>$A5/O)O383N@J8IC3.01M56L3 4<@9"M@C19
MHS1_)]P5=:#^W$3KXBKX_HP_RYD8?&(0VA::S'VKRWSI@$VR+P*55<(H=V[Q
MB8'E68HY$5M%%[UT4VP+X)/4!+],\CQ9,:_ ]28 JBX,)K;<'2UBS9MN*P+)
M3AY?$,S0:[(,[E;K-'DK5@*NDP>#"&C0<,.)F+^[#.O6>2$"]"3UPY^3-7,R
M['X/=-VTII(D2W@F--D?YC-!39^X==O8Z9W$TI8N'$SQ\@F!H7NJ+3MZ=? X
M[PBVTM*HZ9"?4QB@W<?9P[ZE*5 #7X.S7W&X\"K9CYKC^':3QE&^21'F]3;Z
M2?[&?D&@M0>!X5BF[.?I4;3 QUBI8M2\B%=)G.7IQB>BVL6.<U8I*@6>L99O
M3F5;&+@\\5%6"I'DT=$R8KAG*#H-L%S#0Q/QDQU\A!+ 66FO7TK&TUT5.>\T
M;#H00L-L+M;3>;@I[8W=[H.'T.1Z2M9\^JX1EJL?E:\PZR4JQ!L?^/I1,=$U
M/-87@&_ZEC,U ZG@6!A="//--D;%QDS/P*(";FBKS;CV>8P,(6!C)AL;J?A*
M.],W61ZMR #[GJ%PL_P2A;0$^UVZ &JHN_[<MH'>*(^3[T_Q?=YL>Y]WA[[/
MF[-]GS<\'U]K9"6XR1$I,W.59'EV!=<1YC?ZQU[A;<ENVBF BW1=;]S()OYF
M7\F^=7WE0CT^?TUQMEDML\U6ALXV:[:SS4&*[O7+9CY"'8"BCDVVC8FAS['#
M=L""@6G(-NWTE7/KS*( /$5)JZJ\1IF$=?O%]O,B:4]K#A!$RNS"/]J5((13
M;K+$@KV2J23V>7F%6YL#W[-=;6X[$G/>L'%^]+S"=MM6I@[=RNS9;F5&X(=N
MPZIQ-N-/D=3\ ;Z+)89O;0\4/';#N4W12NXT<PT+J'237;K!JT)9_RM"0J4>
MVDF  NT R7[B&%MW'*QR=\6;U7J9O*.J$DP7-7))@6MJ=M,+9L[J%,<L-\?P
M=E?O/C79="!P?0O)]M$:5:&"@.56H#S: (AYOM>J*]H)T#!J^Z.MPYW1?_2$
MQ$[;X5<;>OAU9GOX1:$:: T?[O-,\<LD39,?4?R2?<=Z3G_;P!3&.2)I3]Y0
MEA<^7"\IVKHKTB=YIVZ &JK(FMMR7FFI=9KWPR_]!-V6R*8JU7<;Q40>A<58
MZ%V;UPF @1DZ#<^,.:N]#_KYOEE_2>*79Y2NKI&7BYBRVML#,X2:^:%F/P?H
M1S=F?8,I";=_0VW[NCYT7]_U/MO]W;1<1^OG3TAW\"RZWMI/[V)_N0E0UJS.
M1_?V%"('G@K5V57HJ<3=?"GHC%ON!EW<$>N.4D?^49SK-(,2V-! 4';(P3B*
M[0I9KMVK.AH4_C.8Q2_X*TL\$I,5>H8_;WZN49RA2Q2C,&+LK%UZ ;YC.5"V
MV]"HNNX%_]@P=KZ=M'X\$-DR&_6C20<+TL."=#'2UCCJ<9"Q6[:<D79:]C6H
M6I)F8L]\'LA6(9Q(L"Y3IJTSAP)FYKD[U !9GFR'!K:$V=IH0I&>N^,*KZ]1
M7J9&>V<G*FBV!8JF.[KL T8/E3"@2$XE<<@9+^] 6VM@>"$T)N(ASA"T@&*.
M  U3#>V257QQ9[9CQ\^UM06Z9;NV;$N'B/Q:KDI,0)6\)5V,BL@]%&2W&&1Y
M[O?841/-YL!%AJ[+?B3F;P2MDX&-2.ZM]1&MX7MAY[X/"][JIQ2ZDIAD *I^
M:$UMAQ=4EA@RN=?2!H\=E55 L5"H32Z%6E\E'2"2ZU1!6+DK(I<)@Y4K_R,&
M>!.&R"<7P >4^D3(+XR+3*=N@&ZX,)SIC.N'=)"O!2TIPC))TCH#^+L7<;Q9
MW8>4&5:D#6!3 =_R43.]R<1UTP78W@-"RDD;9J^,DS7^+?#,P+=D&\9[SHX#
M *6D^Z6?&->$](92/!TO5L08?[_)LQS&012_")J4*-1 <T-;F]I%5%!3G0"6
MFI24MX(@N@\/+QF/B%PR2*&[RCOB"J[Q[_)WADX[]0,,RPQ#V;;MOMKM![74
M<[\,%Y1MZAJ%<+/,.V]47#J@![XRE1QNG;8J<6BE0OH%XHG9'JY1YJ?1FO+H
MUW)?KQ$ Z+C(F8C5IY,*!#"=I!)&V\3\BF?E:K/Z$OVYB?"/WY]Q#QE)YT?1
M1Z<^ /(]3[K?:Q\5]8-9*Z@QHM;0=H=\)/+B3QA:<^#YKN+/4A<\1+5Z%Z>=
M+*5#<V,/NXO]%%'RY-!&$[<O8*B>[L[-D#<<;J5-&0_:"&:8MXLTA?'+UJ>U
M?))N>\XV&\_96_)%G7[WJ#VBEU<+FQRO+@8%4$SHZ*.>NN[7B#S?QR]%;MC?
M4?3R2AQ)RUE<G02+7Q:W@ TI&HT/(5%"VW4&] @"W86A[%1QHDIH3J8QH,LU
MG/\=IA%YH"QX)#[#]%M2HRGP/ \YLO/ ]],>%Y/D^/V#@<762[,ML'P7V;)W
MIT&*88 :9!>GYJO.X5)(Z-OTSZVM@6DC4WKYLOZK&0_6*6S5AY][) OH??@]
M0]04+\UE]Y@(!)KN6K*M;V-M*E1T<LW5ATP^E,]8HHM4U1[H-@S=QAH["U6)
M =N;NN<6>,,\VY"C-;$)EQ8JO_UZU2HB?D] TVQ#F4+,UDBCH@/D8X/Z%.Y7
M^WKUM0N6U>F"M5 G>\4*72^4567X"\)K.CH<+%6,]GNUEEQOT#>LQ^<?:/F&
MOB9Q_LI89_OV"%Q3,:1;H$1UU?ZT,12ZW)N8*/O_CF#Z_",9/@3*CD#@J;8J
MV^GB+)H_1BSWCM>):_Q-AI=-YZZ XG@:E/T^<SZE'V"6ZUC5A>_;9,,L8]6M
M)^#K$$VB+.Q9E'X 66Y.FTYLUP*T!NH<]P209]JF;&>%\^F\#GG0#9EZ]A1G
MYBGZ23V/=NH%A!;4@GDJ<0C<07YB Q5X$>8H9:S!77 =] 5<#ZHSG9'#04MV
M&!/D??CZ"VS3T*2'X9QEW=U!'>0D=EK=?H^#TNB"@IN?I +7UJ>QIZ)IW0%;
MMPU_ZJ;G_EKGXMZ[I<W;W+E#+&K5W!$ -0BL8.I/VLPAP$-6\W\[<TV<4VF9
MGRJ420<\Q0W]69M0! '6G.@^B.J%TN/S2$'H.!Z:^H-[GP'0@K'FT3>W,5 6
MH2D@9K>;HC3JUG%4Z/ G1 X<QPVE)^L8-!:ZX9RD3R SUXW=[>WJ%,G@QGW#
M"IP0-8MYGV=.]4YIXP>3MT56<FV=)11 ,T]K8QF6I4\M=N90PFQM-*%(3VM#
M2A!^@RO$3FA3;P5L7_$=V<^Q/=30"F)8P,QHXN>EKSEL!RPUA+[L,QU+K$P%
M'($X2<S299+GR8J9HZ;>!-B!:DC/[,F64]/>V8I WCV(ZL"Z9NIA]WO@^@Z"
MLEWNNBJAR;Z\6XB8)VO#^5_,E[5!!KS =/6)Z(NQR39U)HQ,7AG0&Y@2EK('
ME#Z]8@$P HJ<XSM#1;O Q)\*ZD'A1,.+&QUAX6?'I%$ 5T.>(?OXVNTZX1F&
MB62'HHC*5>0Z40&:^77"0V9H3FWU.I2PZ'6B@B+].K%-.KSGD'R$"))YNV 0
M 1,JOC:1<UD7)8E@DIQ D\(B[RK") .F;7G61!8[$1UT4=X1Q),DV;R$6>1_
M(SG "0O5,LV^QS!(@.O R22$$1-KRS5'!."P%)RT/##1<I.CH)L^V$3 46QG
M*N:3OAH1A%CI1%9-S:/#3C&.Q,^<17.\4+BHF9)],G><:N=O7<?8B/9WF[F]
ME>W&W9<DRR[R/(V\34[VY.?DH9!C.3[INA;M >B!&T#9OE(]U=\99.=27),9
M$4=A;-\V9!VZ#XM1G]6RPW&6@$[=@-#1)E/ZH.O8Z(=4;G@"A>=R%#=8[ZQF
M6D= ]TQHSW0/Z(M5;E3"+KT/7%XEJU42;QD]7,2NX')Y7Z1TRB[BX'?R%,X,
M]![0*8!>X-NRWX1[#H$Q<,L-Z6\80WG[.X4 !)9I3S@E=Z?3W#&FSO'\DRBK
M2+%S,YUDW X&;\E%H48T??L0NJJDK?<BSJ. C#<LQR?D;]*B4/?-SZ)B8$#*
M+N"59;W9#H?[L(&!X]$^2O= -[U >N"HJ!9;I_BX<I#W>/6$7LC"]HC6I.!@
M_$)_O'*41CW4+>UB1RSW[>H8"G\"TRB %6J&)6D'[?MVA:!A3V1*<>4J]'95
M IKYVY5M6[8W-;/$H81%WZXJ**=YN\K2O*8._*^]*O _2.'@+%E&02&R@A_*
M4Q5NW-X6*(IAFE.S K!4P8=RBH>ISHJ@OD.U\E\5\"(.:+*?G_@"%E#($2#)
M;X6[@76YR?#,S;)R,:9-E^/QV$8&[-!WK#DO8DQ4E:U,EL:V//%><P^: 0<J
MWN1JP#&EW*Z@5E"2%;+S.:MP4!\12PH* 5 <1;-E1_2)K%FMNN&AJK0TZCMN
MF4T<WZ7*KS(?<"FM0>BXJC:5]:IUB#=?:GE8*G%/QE>5E'+<I/P*HXUVP#)#
M3YW*04Q0/704E6)&S27\])[A>4IJN+RDA428(J:T!DAU;%?V(:NCH'E8*G%+
M>N]X1&\HWB#&4:IJ 8+ 4:Q&WIG)F+"KZUSKXM\ ,5\?!))^^CXL ='5=M ,
MV+IG6=-]?F#JKAW)?%T&?DN3+,/K;Q@Q;'FU1L#W3=.2G?JWI_+:<.P?\^>F
MNG(0;NWA<6$$_#W*7Z\V69ZL4+JUEQ,+89:1E#'!,VS+=G:X)G7I#%CX^B$]
M-_BP-;@7WKU30+<ADZ-4ZH"Y1IA?/]IJ)@XN5L2"_ ](*8=54C&(@&]9_H2K
M 3,'@ BN_7/_O!1=E*K^#<7XCKF\^;E&<<;8FUL: TM%OC:5LVU'Q;+PR*UK
M6U6-Y*KDJ"'P D_QIA;^(:@.&I9]GL&Y[;M[;])J]XCB#=XJ2IM.$F>7*$Q2
MM&V'-P[R=HUW&(PXBF'Z7@B-I.TA^TZRQ*R]5$)B>FV=ZJ/ 1K8[X6JLG.%U
M>KGLTR;.;:A2B_14GA;;BC6>YOCJ1,)CN@Z (PB=\QN>V)!79FHJ5K\@(HF:
M,F;E)&I[H 8P5*?K>]FN)#%(H^8KE.[?TU:-Q5'%'7SZE6*9DHN/'4"W9PC:
M.&=?XA^6HE=\X(C>T'Z+V&X%S'NP$#E05==TIW+QX6F!?DH6QCFH\ HCS_?W
M&"X+&A0\H6+S+0_NY$86K*(X(EB('^#1=:U@?_>(5IXM:6OJ";X$=,<T)O-J
MWVT$G%HD<HNV5*>W[7 NF?N&F$?K=@J@( 4V74UFH6-1:')#F8J!Q)B\];5J
M-\P43;>#J9R#^J^]#3QR0XT>4;;!#>[#_<5I.V@:UR>6#5FT#V"'>JA,Y0FH
MEQ)[@#V.'I)^4M7:3JI:AY.J-O>3JH)/YN&HQQI\IO+PI2@H:O5N[SEX+!21
M"W=QY>U#N_R)T +3\YU@*N8:GF!;KH.=0,HM^;<])</L]>;/3?0&EX7C77X%
MT_0=@_T[7+(>O06(\0W8<8*IKX/MNNR!4MHS.=7+"JUA%)1;<76R+5/J,\TT
M I3 54U%GXI5K?L\[0)1VB,ZW7T.[\KY.TE?F6/6R=A<$P'@LV^Q[M#=Z=AT
MP%9=S9GOXBL.L.\CMWRC-[,\NX"C<1L9\"Q5M2:2KZCG0BV$K^^3]P343I8G
MWH-'K1'0;,M$4S?B\??>(S1CQK]/\K$**A8*9JVV(R!]7\*;7B9GO%!NO S]
MN<%=W;PAL:(>CMZX6.XZ66Q[F4JZ@F-T A=,"@6 $/K-:(DSP>@7[1SXFJ=,
MQ?F')]?6"48!-/-H9]6WU:GDA:=(F*V-)A3IF7J/QM<S_A0GEK.= "_X4#.F
MLBMU40X'C^R(VR9[W%A.&@E05,V8C%<C1^ZBRCJ"-BUU\6([6YN# *J!.970
M'J[$111U!&Q8DMX18G9BO(EN_.(,F$#&5#IN"13;,96I)$*A;RNM.J&".85S
MP]<DSE^751'F^Y!\\#L^6Z=7^'0?Y1<O*2IXI]BA1,F!HZB*/A7[L:A">B$\
M]BJ@WW7*WY _/)BA?_G_4$L#!!0    ( "!$"UNA1N"K3"P! )79$  ,
M='-S:5\Q,'$N:'1M[+WK=]K(E@?Z_?X5==WGS"1K"8>WL9/V7<2/'LXDML<F
MY_6E5R$51ATAT7K8YOSU=U>5) 1((+ D2J+.FNDD(%2/_=OO7;N^_']O4P.]
M$-O1+?/7_VZ<UO\;$5.U--U\_O6_^T]7@\%__W^7_\^7B0N/P:.F<Z&__7HR
M<=W9Q:=/KZ^OIV\CVSBU[.=/S7JC]4DW#=TD__SZ^.TD?-R-?W[QZ"?7QJ8S
MMNPI=F$:]$V=6KU9:W8C+ZDY1%UZ$?S[]-EZV?J>7JW5"-ZC>K8-RYN'+V*S
M"=X4? L_;';\GRP-^=IB,V^<GY]_>J-;$KSWS='C'FS6ZXU/__S^[4F=D"FN
MZ:;C8E,EX:]@XC^3!Z#?!H^N/1G9]GKK$_UZA)W%F^%;?</S:S.!;S5W>5?\
MASN?^)=+C^JQCW;YHWKPJ$;T^(V&+Z)[?&%ZT_C):J[]R9W/R"=X@MBZ&O[
M,E/\QC)K*[^SR3AQ5[J?X-L0<([5;C;.-FTA?R)$EN69KIT$+/[ETIH]UTY\
M^_DG^#9XT+'=&EW/ HIC[(S8H^%72V^&#5CY0?S^P&^:M7HKPA[POMA!EB?N
MU)XQGJT_Z'^Q]#!1M?@M@2^6'AR/$QZ$+Y8>=)T(K]%_G*K6E#U1[[;J)Y=?
M)@1KEU]<W37()?W^]T;]SU-@UB^?^&=?_M]:[=I2 1BFBZYL@EVBH=$<40GR
M'3LNL6NURR]3XF)$1ZF1/SW]Y=>3*\MTX1>U(6S="5+YOWX]<<F;^XF)@D^7
M7S[QL4>6-D>..S<(_[Z&#?W9O##(V/T\AA]>-.HS%[GZE#C()*_(MJ;8A)EK
M^DOP,TUW9@:>4Z"3SZG?\?D$Z;"-="77@[_#&_6W"SHE8O._ZII&3/97>.\=
M9PUDXBD=D.@7-R;LT/P*UF5C8V!JY.U_R=Q?ZYO[2'GG%L:A>UVK-^#_7(O_
MO5N#G6=#ZV\OM4:CW6R>7-9!^+6:];-N_<NGI1&3)] 'FFB4+K<&?DX_,)?X
M='#W8F19!L'F&!M4&D:GU#JY9)^FGLT54P?NK>ZHV/@7P?:-J5T#6O;;D?;)
M9:W6: *WI9Y @%(^@P?XUM)NX3-GOQET3B[_K[GGX'3Y[QBZ>W))OTH8_-;&
M*E78_NB^'+FXLJ93RWQR+?7G [;O[2>7LNK?L>$1V(NG";972-%W[L<P3)MO
M\PGR3)U_\>/I^H$]#]/7B*I/ 0>_G@SN;I=G>0:@/:6P#>893"S]1/DH?<^=
M6+;^'Z*EG.#ZY%8VL'=RV3Z'J>TXLP=0:010K!6XB^=[[N+R7'/:2*HA&N_=
M1S[(P'&\[.;5@%W+=U(A8Z:?5'/#I)8E!JCSBT?/((WZJ-/HVW9?LV8 L]WD
M>'3HG:3UZNA#>VJZ[QB\O>O@=Y:9Z>H[[YS >S>@NWG\%4!2*^OB"CN3:S*S
M'-T=F/WO8+?,OV/[)W'[*C-_TPN9#8 $"=TY3<LG?%H6N#G4H*%?/.K.3Q!Z
M] /\3.[->%7>CNR./\'?F2'YX^DK^%C:8'A_\QUD_@R;\^]D.B+V[SY+_NZO
MU7DD*M%?\,@@_('( A\\*G 7*VPNK[!'I>=Y;WV)GY8-.,;[X*P2Y_(+]?XN
M'.9CPA"(.8X7U,3_]<31IS.#NGGLLPGS?^A::H'!?/KF:,QT77DG^Z=C>3;[
M%_,G+_R]8O/=@*3@<<+,R>!?ND;_/=:)C=A42:PS?S7XWV7+<?7'E\%'RV^?
M,>,H^!<XM[9+3;7+Q12#WRV^"Z>I11ZE*U@,P;\)_AT,\FEI.^)V9R%RSVKU
M3@B/)V_D@#L!4[]Y@?_XV,AYO_QEDV=JS?%_:C#8V\S05=V? ]+ D3!9#"A4
M+RN3I7Y/_TUW3BX3'N!O^O(I=H!PT\)YI" CCU*XEXN=#-?G?_,>RE!*AY2Y
MAS> B#"?G_C\'#%I [XXE6B.9>@:DV@#ETR=9;(D+"4_PD19IBC"<(%\BU7=
MT%V=./ZWQT.U]&Q,[7WZQJ^>HYO$";;*'Y\IR81]K")DGN8.;,< 7O+,;0()
MF;T@D["/583,@VVI8+1)^;(W6-9VL"0P":Q_:26\DS#M(/)9+&&DE5!>*^&@
MD)%60AFMA(-"1EH)9;$2,H-);+Q0QA7V)])2W*Z=/F[7SBINMS]%I:E1,E.C
M]%B3-DII;)328TT:-T(;-P+AJRWQ57U\M<N#KV, 4HDIVHE05.9D,Z-H)SU%
M,ZMY2*X(D13-A**%5[&\5ZM+;[BTWG")]('$6IFQ5BY-);%6<JR53H?**%]I
MHWRETZ$2:^7$6AEUJ,1::;%V*!VZ-]9D=+D\T>7#XFL_O2GQ52I\'4I7QOD
M##_7NN&Y1+LC[L!4K6EX+EM,, 5TY7,-J?O-4AFT(E3=O*XJFMYQ"79)XDKE
MN..L$$GBRAL"DL3'H8N_8D=7*T?@3:LZ*CTLR5MI'2S)6VG]*\E;!=V;R+U#
M:R8V+1\,;-[A*8D0+YQS11DQ0<Y:KFM-2T>LZ+2/BEY7-M%TM_]L$X&CE&$[
M1399OSA@'B%?["HJ1<>5]A22=GL=\,RK#80DAQ#'LI>YPX+7V1YKDC<P:1Z!
M.(*6%2_Z=EJP9G=.%93;-[6;/SU]QA(D\T63M:!Y8=+B2LDZDE9EX*L@Y_F-
M8(=,+$,;3&>V]4(B6<%2DRMX>,/Z2L9=DF)EXS%?'DYGGDOL<,VP_B=K[+X*
M']3812QN6V/)>$U2+F_*9=V?)=DKEE2LN ,=*,9;SS9UU[,)K/Y6?Z-_6ZK@
M$C_RN(N:3%YM(JW33Z2@$&B!5I,$1XG!482RD$ I*U .KH]2I[Q*[</M0\U2
M>XC"XRJ:Z:H8M%(E\22ZLDY##6VLD7!WHFJO%,G@U Y3W#IS47AY):.+BH%(
M0)0/$(6%5F*,Q^HB)'&QI8+)P;7.5ELY4>!4P_$J5MH<J;\EE9:41GO;P&N'
M[9^(_:*K@O<!>E<[@=@5EM%<E;0KAV49QW<E:;@E6.^KHCA+4D=0W@GB?D$.
M.,C[@HC YK,^,DC?<8C@Y+K5P;<BW_07HJW,V_DZ_X[_L.PK SLKS2Q2K;AD
MO":I>0AJYLZ;G@/V,[$?B<%TMC/19X+'Y/>C8?(ZR\J'DG(EY;G?+$M[U0U#
M<&)AW?X[-CSR=<Y(%$.:Y864E(\D-43@C=5&9GU3B_$DQ:01;6\&4]<\U;VW
M_:G&-Q?;M*J2L,\2P;YC'1XPL:F2*WC4QJKKW(\,_9E+ZE*2*]6:1"=6;!^2
MB,_\X^DK=D +#^]OOE/S%IOSE6*-OJI:'GBECT0E^@L&12TN-;GIX-L)43\Z
M<9GOCT4#-E1"X4%1\:@[/[_.OQ)3G4RQ_7-9+B?M9&[AZITZHRR)\_P2'Q)P
M%0:<8(WMMP".??U(7HCIB6Q1B(DQ-H/ES<M3CHG4PU["JAJP$K'UD(15%6!U
M0"48WVY0PJKTL!*QS6%B#*/,I0Y;P@*[QVU2 T[,X@KAA9M$X;&A4+"KZTL,
M,TGT=RE 2?0CU#<)15G\R[#6^9K,#&ON)WONW0FQQ4Y>Y5F6]EYMEWI3CTKX
M2!P>'PY%E(>1O':<_1WY.G"5A=:.Z;/XA["\M^WF44E B;QC0)[@,J\4T"H%
MH047,9+0%>7HH/(D4O$552,E.5>4K#T"3*RMKQC%4< A)I'%B$17I= E6(V3
M1%>ET'78NPKC*^BD"71\A);N=&7=:1&1)_-H1TAT6;=QA'4;PJ%09M&.+XLF
MXH&"LEE7I;!U#EOBOY70TLJNK)4M(O+*:5&5R+X1D>C2RCXV*UM$%$HK^_BL
M;,%P*#,EE<J4"(:N,F%(DC630FM)UK)DS7<ZQR')6HI2FUT#NI*L8L='$WID
M/A(7[!FBW6#;U,WGLC@"U/IVY[0A@64NB!D\%K^H+,E90.._L%^7ING4R<7&
M ]:U@7F%9[J+!6^CF9)0&]=6,GKY]\X0['@V7?#4,I\FV"Z-;QU/*?^6F:15
ME8Q&D=[J="&NI?XL-74BG=.7UR,Z75+$$:1F*KNWETA:J=(J3FBI"RM,7*E$
MRTC0A274JK4:>9-J9[.BE7&S^U;TZ@%I2F1@^.5*(6D1E(->4K&+3R.IGP6A
M2WS>2Q#U^X[T42O'FPRDWCYH9K PTDJ%7W%"2TNAPL25)D89"9IP,9_4LN^U
M&+.^K&^50E)9EH->4N>)3R.IND2C"PMP"^ 1+RTRZ[MP96X[:QCF2R&I<LM!
M+ZERQ:>15+F"T"5%GSNIF<I9WIV"M%*E59S04A=6F+A2B9:1H M+2)"T[[)9
MD6G]05MF;[,W_'*ED+0(RD$OJ=C%IY'4SX+0)?Y8NB#J]QVGNS--ZL?LCM3;
M!SNX7QAII<*O.*&EI5!AXDH3HXP$]>W$%L^;"V"#1(RN5L;)_)8L+<O8+,Z;
M0M(B* >]I&(7GT92/PM"E^3.= *HWW<8)'DGF03<'8'ND1!M=P[81: MHC&;
M=66J.&3/MS-6KU8_$VZ1=%+[+=(S=;["'T_7X;*FS,0@E[ICM9N-LPOX+OAY
M\%7P;_K[M7=QJV3M=3[GL2]W>A^,_[#R3DU_@1V+/GGG38F-7<O><Q5KOZ<?
M7A/3FNIFW&O3KF;I%9^69[]IT0_PHH0MG,%?-V_@)_WM N9E>;9*'/[/"<$:
M Q<,?OG%Q2.#(,>=&X#2,6"BYNC_(1>-V=OG5UUS)Q>->OVO,+P[LC2 H L_
M=+7@^:_WC]<WC[6O]\/A_?<+U)F](<<R=.WSR2=X/WMVT_/-]><_^>-\8O.Z
M_#(+?GI[?S>L/0W^?7.!&O69^QFQ#V[[WP??_G6!7+#2'&225P1Z")N?T??^
MXV^#NPM4AW4@BO,:-O1G\\(@8_?SR>5__=+HUC]_^33+?@05N)78,,87Q[4M
M\_GRQ]U@>'.-GH;]X<W3ET_^I\6,_71S]>-Q,!S</*'^W36Z^>?5__3O?KM!
M5_??OP^>G@;W=P5/Z!_8F8#W[UJF@JY/KTY1L]YIG^<[B0/0_(LSPV8,5_5F
M[LGE[?WC=_0%.-&T3"9L=!7YTOB1C#<U_CY!)J;:1"/ZQ;6E>M1=&,YGY(0)
M"OWM!71YM]T]N6S4:__'F'TQ!.PMG=1EYGL=_G^[$[_Q'[YC^R>Z-\G'PH:,
MT'I)P(TL&V1?#39"!11>U#]':$.G$!%Y2"6&,<.:!@_^>E*/BL#@;1.B/T_<
MBP9,XB0JYOA;VG_]_$)L5U>QX4_.M684([,88-#!V3_'>*H;\XO5U4^Q_:R;
M%W4V4E;0^3\/;%]B&_-',K-L]P2-+7N*78HDF!=1+T:698RP85BP]+=ED)W1
M33X_:W<_K^-L1N6W%MV1?#;B_W[T'X<WC]_^A1YO'NX?A^CAQ^/3C_[=$ WO
M$8B^(<@WU&BA^T?4Z'S0/J+[6S3\GQL4D8JA1.Q?#>G7C?-6>[& JJFD6\M&
M[H2@/P/"(VX4(G!MB):=3'I@;[WA_M(2K"XT&CN!%T\T/)\3L)G,95SU3B[_
MYID$M>H*HH/$HJO$)+#L@E8@Y5ZRRK2QZ; 8]QZ"[]P7?.T#"K[A8__N:<#$
MFY1\J=B.!F-UA\9QT5@'OC ]&GJ]>+_(NV&^^2V\\XZ]<@DLG3KU\!NU5JO;
M/"M$DH4+WE<2K)*'PZY&_WZ!/=<*/K"9"&"?<+;OOD]VK+B&O]39_U!CX2(>
MVFS/""J/Y%F'X;#IWL$WRW!I &L_/2EH<'=UFLI\7_!J\@[GN&\?;MZPZK(E
M(FN,['!I"#O(F1&5QK$TI)M(=QVD3IC5\?'@4F9?AOC#<UQ]/$_/$[U.OCSA
M*]S.FL8=6:YK38OAF6S88F"JE@W*F-],23-L5Y9GNC2_J9%U!>W0)V:V]4+?
MLV)#=IHGE]?$P*^81L?6N&B5?5;MET;]K[EN7 2(*^,?$[V'^&W@1[I51O,X
M]=DZN6S6:_":,Y"-*4BY11*F-,HREY(,S@A\+XO><XG^\&S=T725KAK$9KYV
M@![E*S8'^QF;^G_8OS]&47@0R!=-BL'IX^G3*;J9TMM'@1;+&$1WUNFJ>CJ(
M8EW?L*H.EI)EMXK&@H&4L33L:YI-',?_XYMNDL:R)&R?7#9ZL.#^B\Z1>FWK
M+VO:3<G*GUF?3W-Y/IV3RZ^>;E"C!JU)YARGT5J>1O?D\LG30;@VZO7-^J%D
M2+B"O][;0^MUQ;0Y.[G\C8 ()RY\E?>^,[UU;S^ F05J9%<KK ?.#'G#3BH3
M3$Q[J_16ED_(!PLH9?Q;GW%C.DJE\Y/+LUZWV2NO=>6OD3J@,QMPJL^P@<@;
M43T71"1\/*:WBA^?J0/D1I3>A_>W\\QG %H13H6 "SXCU&C4T<TINC<T]$1<
MUR"V@[X:+]JI@A[!Y=3@O^I/!0W_B8 QNNW"PG0YC[&(._W7+[UFX^RS P\;
M9#:QS" <JB#8/,-C2AU\9PQB1R,'2)BS!S6B^E[+!1"%V 9H?T#UNP4CU:Q]
M6-R:*.S63RX[C>:J(/Q8>_>0WRQ@^P>ZT3%.;K=Q<MEJU&M@P<29,+FD[.-I
M\00,8[/[?/U('K&)AF:>[7@TI.=:P"_<:6TT/XP^4G:CR<2;-W6"S6>"^JI[
M(690.YOT5LKP3*N^-0&6%Q<-=1!GE"XW6)V@*P,[3HJ 5V<YWK5G3NK=8:V#
M[IOZ$_3(TWPZL@RY8REV[,X/^3.@A1( 1,,_)CI\\AC*C]+8D>^6\K[XG#>:
M(\:'RU*^R7.0L$/L1(B"_G)*:W_1#-OH!1M>3*0ZUE[-'&MEV^:AC:GLYKRZ
MO,<MECX;R)W<#; !^_)\Y*J/3^#;&/>^VSX!(>!H^,_5[4;^@4%$R_Z(6SGO
MPQ]A8&HT:DS0:([4"5%_HBDM<WR=$!;DIY91)!_ZH?$13;##B@\TA T#OJ2E
M)]34^M/3J:$%]M6(^ _ .T-;JT6C]KR*P[>X(H9:U/BB7],J#J3!MV#"TT=G
MV''!7$.LY,I!'^!50&#D>""DG8E%\[%!#9@[P>[JM%_Q\@19[03[L3_]CPK"
MX#)]:/+EC0 F\/WH#Y@\?9X]"C^BT_'?0PMP'#:)<'[G=:3AN7.:5?CJRK-M
M&(47]U!9X6+7<Y;AVSFY_!=9BTTAOZ;1=Q7Y'_X_[BP4%OZ4L@8M'7 )9M0-
M(4#)"A2=ZJX+& "/4:7ZG,HY8XX(R+PY&E")A%7F;%]C%R-:#K,*[,4[HA[%
MHP=/MNL=BETP&CR#1[>?:D/T@6[%V>=FJWGJ/^!.=%9%,*-5!$LHMXE*>"PZ
M,ZCS^88()L['S/ 9V2^Z73Y<E_'938'/)7CR/XX$I"NT UA@9("2)@BKX.#1
M\SM 14HVFPJHV$\1[&LM]@MG"N"&4>Q @ "EI^"(SQ4JBN%U(,2H0?",GFWK
MU9T$7Y^"9"9L;AH9ZR:K,&11*1IQ:=8_)\V0?=WX'#RV]8'D^04/4IGL/YPP
MU^!)W>0\"%9KK1GGTI^*6*]ZP**<U*[7GO;EMWB0)#NCS7I&WNA";,2.D]^2
M^X=?;#8^Z:$*FQ=%J/85[.*S9<]C#'GV$-M?U7]HU:8_ YL^3BCF[5'YYTB*
M*I]^2I*?V:XK([*RV7[U'-TDCK-+J7JWE^*,3OH:E\S\Y0/ZX'N.=Q.O0X6$
M2S#7W]A4K_A,=X)-FA,.%?/EQQNL.IH5BS5&]?&J'4I])>8A@> T+>;@> ZW
M"&%,?LC*#0^?!-X(]5+H6,:<#OZJP] P+)N^1874B^XP06QB4]6Q06T#6AI+
M'Z8G_#5L:PZB51BZEI2O:7W L?F:TVIY"]H.[H(S 1,PH#'Z )1C1CLO5]]L
M$H,G"+Y95M[@$YW('GQZ5D_DTW7W<"6&T:T(P1EI>/*:$HHW84"6YS+&H!P"
MG[*(AD]&W7$\8H<9<)6FR CST50>G7=X=!X[P2\,&,9Q@;^HPZXR)X6>82S*
M+<H_D[.V>\M[L;2;?%OZWC,X7>B,G]"\"%,\:*5ZZ9;M&;PHRAHK'536@W>+
MMEF\U<?]8OSEHZ1 =\UR-:+J8"&=(-KP@HW@=PA!_C?.KR>#N]MEUFF<7#8[
M2JO;5IKM=L ]P71SSK=O<7W?V8,CIJ?&KCT[5M7Z=L^<&3IK._#.K#OC3?A\
M-IK8B^W:P5D;WOQS6!O<7=_<#3D5(CN2PMZ=X6=2&]D$_ZSAL4L/"V+C%<]I
MZYG4UO/:K/,VF0HM+ K3YXLS:X44JA3?R</'(G8QR"!_1$UW9@:>7X"]P&J3
MF( 9WE_%]"6XOT.LZ0=ORU%D34^16Q5T%PC;2B#>!P#=,,-WY5C_ 45L;N5"
MGT=8_0G>@V=J-=4R+/OB%U4E9#PN(HB$T<2FZN^7I_[M#5T\"__2?Z#_Z3^"
MV/=#OGQ76#NB[R :OWS"FP[#Y5SIPD<Y+ZJ.A06#Z:DHO>@E)VN*&-",V?\*
M!<T#F$0/(+;0@!G'C<^W@[O^W=6@_PTD.Q5>_2'K%K4,EO*74P2(:.2[K)W(
M7Y#,"+LH^?9*B(4!8&'@DBEJG*(K"X2W20,0\#=F*#(_^S:,1H3=<)U*@&-I
M4X1'2D&"(A$IWZ_[/E2:I^@[-L%DIE (_>MKW5$]WG:#IB3[)C;FCLZ<R 6"
M*,1X0(P^\T@<SW#9(_<SPBO CP9:YP)AZ^!2J.5#JW5*34H:',"LQ(2B!#XP
M@G]3D!D6;7[IH/[(\ER_\@P]ZL[/(T%.4R3D'%HJ#=H^<MI,?X&C83@,-0^V
MI1+-8XU:*P +\9%P ._GH1D8LH$E>S_\GYO'X[!B:8MK88A_<#'07-@F/\S(
MD:8G;/ X-[_ (5I/2Z7$#X<=;6#"@FC5$!7;-8A0T#FX[3'L^MCIGJ*;MXD^
MTBOBW\33_@A]FJ6(V>"WDTOXSUU_^..1-NFN+*&;!1!:Q(9N8F:H5G)Q(P.8
M(7+*#ZUGL/+L%+5/45@62;(O9!KA199!&3*"@A*FYOLBMD0?K%+Y422%LE.6
MB4?X@[S+>J0_S*[X(?_@212)^H?Y%S\=542&Z = ^9$UHGUX'/P=IA)M2/L-
M_OBM[S>U9>FRL#/M>>'YHIQ&H'5![$>T.HO^J:!7@J;X)VT/1TN[P/Q\M>DQ
M&5I]$016^7F5*9[30@K'U5W/)4%Y_]BR7[&MU0S+^NE7A/F_"BK\/]C8+X("
MB$W !K9LJG#0&*NN\Q$M%S[1_-V#K;_0VIJ(6?P-_GCF1W,>":W!6)PW.^_0
M*K71?/5D&EU*6#05:;_[@3X70/;FRI_EQZ!)J.V!;:[0:BW_+!!_DTT,@AWZ
MS:)%15#=UCSKQYR,6QR(:[%R'CSE]7=+XR\]'DR%'VD+W]ZX27GN+G&8Z,/!
M(*?H'_28B*/;' L4 EA[P28P/PD&#,Y[X#%!$VR#9@N(RLK]'+8]^U)MS ](
M4?2@=?0 W#2"QNMX#?=?02//966.AC[5779J2F%3"3"9^%HV91TVW30]0"(_
MJ$=/C].&+C1+_K]+^[?T6(1*#C"/8= _W8GED/#=O,TB/W;H\()*1KZ;J[)6
M;07B(YE<*C#W"%8?W![%2B$MSV8%J$#R53D!@GFJFV!Q/\_Y&3?817^[0="L
MGCAZU0UC]3/R-@,663N\!,/3!CPN67L>)-<TYO,1,73RLO8QK1G336_M<U@(
M4;&S-C#]W"$D^#3LMND . ULHU<P"YU3],3.\R7O(P9^'&&:[P(X3M<S&BH_
MK(= *?NBB>]#1%;15T3.P-JZ\Q/DEF>J8.ICW0RE(Q<*C('YVYB85RW/@.\P
MI1M(: I\VT^)P,LT?3R&1=%]M'5V!).S*,,_B!/5UD<+29ZL'$[18$JYB9;#
M4D5@V>\??D%Z-@$*ON0)^'*$<"E"MVQ=DBROB74!0B<TJ(]N^90#8CO$I4,!
MG\.X/'/9#P^,+DF/D@N ?]!"\AEM=@5;K]&\!]:GK%K<&AF!K*>8X^H2S3SX
M6(5GZ2/>C.9N'7Z&<1Z%'R75$HS7'P$.!:HIU +1]/ A5;=5;TK+,U7Z8A.]
MLO8?]+>)I*?EUXS#2DZ+OD-EJX9 R!#=5& #53)CG<^9X'G5'1*>'- " \FO
MA.5ZDLK@4.H.GYY\."O!1U=+1S7#CU_)ZB= OYB3GU[('Y2]V%P9-"@'PU]X
MU9ZIGK+?4-L+A):C:SJV04*)<^RS(JY[K,NM2W_[ )R[9VWGHD0*U5!">50!
MM9VB;]/>U4.5V+N$XF@0LP7W(T[8^J_8H,H:/4T(<9V"Y_2!V:66YX#&<0*%
M&7; HCU:1:H*7OUI7LHHU_K:"=C3;$WD BSL5QMGDCJ)&3#0J!K= -@&RZ#\
M_.M),Y062;6^?EOE6.#D#LF@*KU@3EBO@3\8X212TI'LFJB$'95K-1012'>
MD_L'QTJ\\;W:%W,7X$3A5X0&]$SL:33&\7$CAA[ZU]>#N]^B2_Q\/"(A-9F+
M)A^([;:H=#ND/ @.SA2.F/%XNQ(IX !3H4N7FU[TT@_:'<IO#XCZC@,>VX4(
M^W'$4)";+A3_"5 [>DXOA[W"SH0G]>A?:!O1%VSPL-;AMR]FY'C[.'X^?TG"
MW\[>6E"&N-H?A(8-Q[KV>Z/>.S])Z!82;9[C.;5GC&<7=-?I_]\L]ON1@'6F
MTPY,](N^J2U_$'DR73.1'T_7T4XBM18L&Y8(DVB=7+:Z2J_5C>D?(AR])=)6
MD79>CT5:N]9HUEH-T9#6;"G-9E,XI(E8V+TBF.GY+WI)-17.O"*$-HL&THQ8
MH9D9[5 O%.,<S*S(@]D:NXCUQP6![H@;ML=^-Q,U6LKY^9EP3'2D(Q> NN8N
M(CXWU'659KTE'.I*8%-;CNN7V/FE@_ W;)NLJI.6)+VI_JU_(]W@M9Y ?L]D
MO30)?5KUA;^H5GBEF*VUD^7N4^8?NCNY\AP8C=@LP)$IZ[65=J,G'.<=Z<@%
M0+"]DTE?" 1[G89P !3?:A^8M-S4HH6(TD0OB'DZN\CO@$!S8)8L;*2VTNF=
M"\<H1SIR 6#K[B*ILP;;F=(]DP;Y[E+YP28SK/,3+Z;CGV+A,97@6 QF22I!
M<)RNC$  ULJ@GB4%SYWM(N!]6M]P4O=-[9[2F><@,_2-E7JGLY438XLJCDD@
M2R O ;FWB_(H!LC-]G8_4P08"VWZUT^;'=T\N1Q:]/I8D56*, R7*5_ME'O-
MFH/.ZDKO?+LN."J:5QAMC?I.^=>LT=;I*0T!4T$B^@#4[K=F\.(YC\7_Z>DS
M>F)+!F8*8I2=<J<!K1X,;+I@[=P$Y,K&=VYUE&9/AM0%&;D \.V40LT9?#VE
M<RZCZ>EF^8WU?V $KEGC&FOG076H(,BM-,_LE GUF]R;SXQBC_3M]^,?X*E2
M:F7AF3:5\Y8,K0LR<@'HVRD)FCOZVDJS(6/MZ6;YFV5IM-.6(%BM-)?LE.T,
M")-%F*-7%XX;CG3D E"V4YJSXB@3TTY>%.VSHSN"0+/23+%3'G+Y4$46D3^E
M7A>/.8YTY +0ME.R<!/:_D-L2V.?I@-:33B0B6GULGRLD%D^F6_G++137C"2
M7K^S3#7#6NY.MQPY=@E=8:#;V"G)F!]TSWK;<XTB0%=$&SVA/*0$"J,%D]8L
M;V20!2&S/ Z];;B,>&BG_"-GGTP.:YXK[;/MEOHJV[2DQ*\0]G9*/V:&O?/N
M7L;&(:"WK\2N)A,(8]U4LP_/D8Y\3"06T0)<]$#[IN.1;K#;C41IA"9A6?F-
MEB063O(<Y/Q;7U5A#JZ#9GC..L>SVYY4U?;(XE"<"%M9GC9<C49\N4J2=^E3
MX($3H&]J?;[]$<60X=G]IE)OREQ1.7$57^"1Y#D6BJM.2VFUQ<.5B*;?L@"^
MIG=7V81>!_I"3(\VA_"CM()RAS"60A8<%5_,DB"I U(]<DIEQSS .RWQ"@J/
M=.0"4!=?+9(@QW-#75/IRC+6/20V/X9@++2HH!);YDLYM\57RZ0ZNA"82O,L
MVT/T4ASX$2%Q*C$L#H;CRU52'8#( </GW>T-PD5 L-#6?WQGB(A:$8L3A6&X
M+/FJ&5]+DZ ;\@G(G"G-=ELX,^Q(1RX <O&E)PFB/)]835<Y;XAW?%)$R__D
M\LXR:ZI,U1UW'N=(1SXF$HMH*P:SY/]%WRSSN>82>PJ2?41[U2Q$DP@[*#)4
MLU#<.[5 H+0: JFN@5*9%EXWSI5.6[R.(4<Z<@&PVZGW06ZPZRE- 8\8BFDR
M+@OM]6BQE-N%,M!.;1$28F>9\E*SJ713]%8]*AQ4&H$[M4PH!($M,")*+LX/
M8X/'E&L(*\YE\H2SWT[-&5;2[=D>FCS?'G43(6\BP2L.>'?J]9 G>,_.RI&V
M%M\G6/\OXDG B"81-Q$H&9,SYDX=)"*9@VPU"K@2*7H7B\"7$KO"8+>U4PN)
MO+#;:BJ=1@5URJ$*2994B;#J0QA.RY2A=NHG$6&H+!("S7/EO-44SID_TI$+
M -M.#22R!5OO7&FW2AXXBMC\%<.>L*BOVG*/<>1C(K&(]M[)Y94UG>HNO7N$
M7U-*;_O6S6=BJB#<T8<[RR6H\5&$_9- /8:-EB063A9)VT:"38XL25PZV^;)
MM=2?$\O0B.W\UR^]9N/L,Z)7K;ES66E_3.@\TI&/B<0B)FC7@ND/=E#HXU#)
MI*"_) 7DSG>[_"-\,9-X#]B^MY]<[!+M[]CPR .QGR;8)JE#=0_L<2<:L1O<
MW9Y<UD_K]?IZ<@7-L(U>Z$B?4?*"=DIM+B^(3Z?ON1/+!AIHZ1:ROHC50_-Q
M%YP@A_T,X7"TSS2%3I#N.![11,"ZR$(EBU#T3K6URTAA>*_:=21'.G(!2-NI
MAO8(D":B&;^F16G$$LBX387VSG?2./RM NO/G;+!D=7DHSS;YZFU9_*2=FII
MN;:D 5/(V2RGV5'.SSKKRZ$1\>3YQQ_>2Q ?><^_V8DA!S=:-M%@IV9U:VNX
M]US'A4W2S>>,%M)2SF(.$6PAQ$X]+ M91*.^?I$-LA8#(>RBOWE@5K;J"J(;
MSE9X350R'1$;M1KLT[:"8* 9@=^_$&,NB&*NM$FPD]\5@5*,/;!? 9MP1L&1
MCEP UG8JPS\*K)4BC-/7-)WN%C; <M.UFFXB%<]T%\L+R0M@FIVL^@6I'H!2
M _.*TRF+DRM=I=Z1YVT%&3E_W+5W*F_/$7?M\C=-.%A71)M@Q[/G0>P ;'#5
M<MP-[M%NMRX$[V=*VM?7OJN03<!Z=Q^UL9./FOL">NWUPZIAS""51R2(P"F_
MJ/NP0=:EBC6YCJ,O(\;AD'FG>0J3A+\MX::N=..B&XG4V.6RC8\"T+3::$IU
MM* X-'65LYC3!IF"J1QNC*IZ4\^@86[8M+&NZK+5Q.$.5FYBH)V:Q#T2%^LF
MT6ZP;>KFLQ,A\S6G<I;,U.DHO;/U.,(:-VT\<%E2<2WQZ>-SIVYRQ>*S6U=:
MK1BC.6]\"NT/-<_HE2/\3*\34R-)6(VD5 8"GK)O[U0<$RV Y86O65S4H'1:
MLCN$Q.UNN-VIU"87W)XIC9+@5FCW(:H\(@TA6+2FI,JD!<O2+&]DD/UT_K;[
M.K<-EQ&+[92ZCASA[YM:+@S7:)TK[;/ML>I5EFM)55$A5.Z4Y"X E>==I=/=
M70\< I1,#WQR1Y8VIW_2&W<C@]S>WPUK3X-_WX"2HJ,@]L%M__O@V[\NT.HX
MZ'O_\;?!W065X9]1A(0J >+8GY=&SVV,)T+H1>#6=(;-.2V#,BT77N%:R)T0
MBA.-W@VNT;\Q&X0%I\:ZB4U59\X*?,#.JI_F.%N#C-WE_6!;'XPRLFP )*,^
MK."BSLC+"+TVA ^8>OVOP 3 >S.LT>*O7T_J5%]SNL;J^9,HWTYFHXF]F,]F
M"^%D@T09&6 ]1 P\-+SYY[ VN+N^N1OR;8BC62/5D!$RS/ SJ8UL@G_6\!C>
M<8&P\8KG#CR7PL3QWT:FEU\PFMB4GW\9WE^!R<&(8(U9BP**@2^?,+R(/E@<
MMZQC(S=>^>*XMF4^7PZ?GA0T,-73+Y_\3XH9]X>)/4VG#'@5Y<:GD <I+?S&
MTO! P;/[H)L@,RS/ ;O341!Y4PDPX(PR)DTG(CQE%Y5_+&A:A8JC(E:Q6>2M
M3B\O$9BKH5>TWSW1-ME?O]39__;ROP,"@MXT8$'FKR?=DXQ@LJ0B&O3'&V45
M"&R"OL-631QT ]I<0SDPX&YS\HL*EN=Q,"Q(\&6D )[TM]R!5A)8I3?-)(YW
MP7&S"!S3$(T(()(TS92F;4G3RM%4\FGU:"H$GZ8,Y^33)<F_UT.8VX=7HM41
M1*R5)U8T$2 W76ZZW'2YZ<=35,!5W8-MJ9[-@LLB[-@[:\&WY5^SS+)V5DZG
MW<+J>.Z_7:LW7"OA](:O^NG3D;W/XF1Q2ZG7Y?41Y<12(Q9+[0B6VD5BJ:V<
M-]H22J6$4C-)+#4.(I8:M#/+V?;[,@4@J033&IA:27*I<1"YU.BF*H06VLXK
M^N0!M_-NL1I4C<)S^%EDB^_0U=F9<E#[O5;B@G+?0\)EP4I*NR>M14%&+@"'
MG?=:F#GAL*DT>^N'Q02@R3&.7  .N^\U3W/#X5E/O!XO1SIR 3@\>Z]EFQ,.
MVTJ[M?TR7:$MW,-$,I_FCDNF2 >:/O/Z6$' ')^Z72T,%X;+4LTS(R;LO=<X
MYD0?+&B>R6';=J];BD.+$M9BPOK\O;9V'K!N*^?=W0\&2EA+6/NP[B8FO-*:
M[GG NM%5SO<X\"IQ+7$=X#HQ^9;6%<@#UV=*O;>]6;0(L!8Q^AUT2[#]0CNQ
MF% 8+LN4C1(3CTG&_*(]%2=2%D9.*Y4V."K25QITB0G*)%,[!] UF@K8_!)T
M8HQ< .@2<WI)AG >H&LWE?.F1)T@(Q> NL0,7I*9F@/JFCVEWA$O;5R"\/25
MY;BT>X-OD0H"6^D5)K);8J)RFSE+*7T_]IDNB\+>+I@7VU/D(KB"$LMB8CDQ
MV;G-2LX:RV=*MUF.J(:$LIA03DP9;K.]LX9R@UY@6M]>)2_!+,&<!.;$1.$V
MDSYK,#?K2B_%X2$1L"QBN'G%UO_-MAP'S6QK+-K]'L)P699L=+;S2;R C1BA
M'AB=,C%N>@U9RBK(R 7 ;N=#>_G KJUT6MOKE8Z*^)6&W<X'_/*!7>-,8>UY
M).Y$&+D W.U\%C O+=N,N9CPT"38-P)=,1@*RP!56^XQCBQ)7/F1)8DK/_(Q
MD5C$6-7)I7^!@/F,R-N,7OXA3!]"B<K*;[0D<>4W6I*X\ALM22R<^7"@4]=
M!; D%/1,3+ J#'8G)=:FNJD[+K4R7@0K=1,/LEG$YN)K0U-DP'SZ_<:IUS>U
M_A+M;KB!F$F6XBSF4G !J'.,(Q> R/CRR13)L<(0V53.&K)^7I"1"T!D?!%D
MBKQ988@\5[I-\8KKCW3D A 97\N8(J-6&"([2J,N^VWN81=?DYD->\I.@W.;
M>&K!H/^1C8G*4)AY%E^8F<*>CM*=\F6$ZAFP8Z\MZXTEK/>&=2^^4#*%49XO
MK('A)*PEK/>&=7PA9@K+/F=8*_6.E-<2V/L#.[[4,X6#D#.P>]M] A%@+6+\
M/.A,9*TEX24[BLZ.\16P*;R"L.+"]\RS:,7043HIKE41@0TEG,6$<WP;FQ3>
M0!YP;BJ]%*=8))PEG)/@G)@#W>8%Y 'G1EWIGDD\2SSOC^?$#.HVXS\?:Z-Y
M7@XXER Y,#!5:TK0&!X+_ #+%,S^%X;E,N6IQ!QP:@N>T^Z;Y61C]#3ET5U1
M1BX ?HD)W]06=Z;P:RAG=?&.4A[IR 7 +S&KF=I"SA1^7:75E@58@HR</_S.
M$[./J0W:C*7?>8KTC-#FJSQ(7C@C5&VYQSBR)''E1Y8DKOS(QT3B4@2U7&(3
MQPWRV2)LF\CXS,*B3BQ\VA;."HB57:5X3]Z (LK(!0 OL3!I6R K>^"USL0[
MH'"D(Q< O,02G&TAK.R!UU1:S>UURT<%@$I#+[%<9EOX*GOHG=7%RQJ)6&R9
M9*+J+(XH"'2/O03BPP:>V[NO04!J'C&^=R?$SJ3G[7H+ [13$43\KL33]*,$
MI]#@W+O%04[@C%$*$IS'"LZ]NQWD \Y.9]U+D^ \5G#NW?@@'W VZP=0ZR*&
M=$\N'VQ2<_&;D!:R,+R2J5NY=ZN!13$$_<T5O$,W/=U\O@\K2K\28 W"GQOB
M-^+<O+DVMFQ--[$]'[ADZMQ9)AW=MEA#D8"],JFNZ AX4>R1CIP[C)OUO5L+
MB [C=E/&EP49N0 8[]U*0&P8MY5.3U;Z"C)R 3#>NW& V# &:=S9?GVPC'Q'
M#AFYE$2" /_87>(-#+MW:X&0$?WLTE=BDFPNVNK*[@(2T?LC>N_N ODANEF.
M$ZP2T6(B>N\& _DANM$H1R<F"6DQ(;UWCX'\(%V2+C!BAN_O2(F*6UJ :<WR
M1@;9+Y'REWT8:6W0C#AI[\X"0+*,CS6V>]M]Y%46:DFE4%%@[MUS( =@UK=G
MA"0PCP68>W<CR!J8;:7=E<"4P/2!V=B[3T$.$G./SNB' *;L6B!V3JEJRSW&
MD26)*S^R)''E1SXF$HL9([O!MJF;SPZ:$1L,O>D4K#]G@FV":N@K=G15A*U+
MM+<+MK3SLK'W[EP04.^!V$^4:(QBJ6WM!_8;)VIR#^YN3R[KIRE.5(I@:$M$
MYH7(O5L:2$1*1.:"R+U['>2%R!37)4M$5AF1>[= .'(9*6:%Z"9#^%HW/)=H
MDJGR9ZJ]>QRL,I5/L^-A*XG)O#"Y=VL#B4F)R9PPN7='@_PP69+LG,1D7IC<
MNY'!T<M)9A)_<D>6-J=_8B!-9)#;^[MA[6GP[YL+Q$9![(/;_O?!MW]=H-5Q
MT/?^XV^#NPO:ZNLSBE#0(&-*P,C868^@$GJZ#<9X(@1A%:SH&3;G]%I7TW+A
M%:Z%W FA(-%HF:Q&_\;J>#%0&XUU$YNJC@V8%7PPA9<YISG.=GT_V,8'HXPL
M6R,VHSVLX*+.B,O(O#:$#Y=Z_:_  <!X,ZQI\)M?3^K4<>%4C75X3J),.YF-
M)O9B/IM=I9,-XF2U2!H-;_XYK WNKF_NAGP;XFC63#5DA PS_$QJ(YO@GS4\
MAG=<(&R\XKD#SZ7P]?RWD>GE%XPF-N7D7X;W5R>70T8$:XSH>4N*@2^?,+R(
M/EA)7OGBN+9E/E\.GYX4-##5TR^?_$^*&?>'B3U-IPQX%?+E590OGT)N9%29
M8/,9AM)-^,)2?TXL ]C$"2?]7[_TP#KY'+P=W?SIZ>X<%;RH#S ]=V)Y#C8U
MYV.^@^\J1U9_FI=<R=5T*CI%/-&X1:-:!HQJ_GK27$D7=__Z^>338:8H]Z1<
M>[+5UEV(D]P%51\XFIJEV%@64@?;1Y$))\$L]T3N2?F%WM!RQ9!WZ9V=ZH D
MWF=</5*["V(6N.L6@9XKGIQCWH<((!* IF5A_ >L:S7=E%2K!B<.;8(=SYY+
M7BPA+_95U9MZ!F:%#9)R):)<-.X6A-L$H* TIK(5X<U"L,0R9QOA$]M@Y&B$
M0NDIW)]:GNE*"E>7PE=XIF]SJ"6)2TUB*::K3F$IIJM.X6LRUE5=DKC")(XM
M=A"'Q&*>O/B*#6RJ!/T-FQZVYZBA(%HJ*%;%IF"'X]/P0(J*S96N4WWG?@Q;
MWZHUFK56XW>_//-W'G!G48?O9#JBMTPMUV]RZV3@.%[:HLWU@LV5YL0MI=,2
MK[F]4"-G62&<):J:C8Q0%0ES<<&:1==KB:E28JJ9"E.+:AJ::1J8OF=<(+[.
MFDJC+@67("-G!<SDZQN;S?I&9+J.H_\>Y,E\D<=T7U&:M*&<Q?1S7+O0<2\)
M(-#-HH)(L$U :64*E%R4H])LI[C\4V(E=ZRT4ZF[1^)BW21:<'ZJ0*ATNTJK
MT9!8.;QEU-D$E4*P +Y:>WLS%*';3!36;^V1.*ZMJ_1<C4-I@5[@ ]%:2Y38
M4MO **FN]VCM[J)R:^W:LT$$/Q!;MS2NN!>D9H_U7[&M_6:G;H:\S;!KG6T_
MVWI4$*HT>%.=K<X$O'_'AD=28O<_Q+8T[$S2:HJ:1*P8(Q> V/@;#38A=O?H
MC43O48Z<%7IK JSE&$?.7_JT4EU;T=HW\"+ESE&.7 !NXUM!;]*:.P2!)&R/
M<N0"8)O8+WH5MA*7I:G+"4]WL3:H#K+)S+/5"79DN$I:H"4?N0"1&-_)=J^(
M#351+P)V9-\S^>CTU3\]W2;:E>6XWXD[L;2J2<8C';D >.X>#4\5GI%0/;*1
M"\B&MU)UVM_%F5]'*7]J&TKW+L)IUH\H55XM\,5W6LX4?.E$Y%ZY^<XQU?.4
M#W@;<+=[QF]S)$AJYB,;N0CAF#K)5TGA)V:)$=O5V@CS!MO3&3$=3-<N""S+
MSQ R:%-N^B7+LW;ZM&'J,IN^]H?GN*Q_]M!*\*&9F<@X]BK"L(\$9*(#N_M$
M[!==)3PT_DA4Z]ED;V&B4VKK2HQ< +AWSRWN5)%3+-#W,@@:G74_7 #:'^/(
M4AF7>^0"Y%7JI/*N-3Q2)9<(:)6&>/RMQN\O]Y$(+Q'.*HWPU+D;:4Y6N);H
MCKA(-U5K2@1!OO_"+:VF!&#&#)IA)9K*L:VHCDG^'2,*-LCJ#$N6 BD.C#]@
M?/^M@+I-B6>)YRB><ZIQDMB6V)8:6Z)   F7>7&2E&T2U0='==:E3RE O:?_
M+Z$MH;T3M'<NF#IR[(I98A6TK,8N^HYM=8):LFEU41'E3GS#S=W;W^31M/J\
M+EXC-*%&%K6-7B>^P?!^395DTVJ)*8JI^(ZO[V][E$/3:IBL!)D8(Q=0M]^)
M;]&_;TN<')I6]WJR:;4 C8@[\8V(W],[*?NFU:WZ,9VN%!<K\9V(W]&O*(>F
MU<WS]:ZI$BN%6T;=35 IJ&EUMR.>KR9F]8YL6GVP8$=B@J<=B1=V:ZUZ.9I6
M-UK;PXY'!:%*@S<QV)TY>(^K7]R1CIP_8KN)YS\3$2N;5I<*0^5'KSSP5F[Z
M;9 ^B0=TUZ2/;%I=,O14&K>)!S43M:9L6ET.\%0:MHF'+U=A*W%9FLH<MNG(
MFM$M<A!Y([:JRX;5A;!3XDG/G$)5[,M[3NF;@- 95?+$9)0$(.(QCEP <!./
M">43IDJ!V_)KAR,=N0"T[IX1R"Q$]0Z)NSF%+Z6M(",74";033QEG%.4(W=K
M(::4OKHE!=7"8N))HSPC;@6*48E#<7"X 8:[)TK?'T"39FAU1\X?LF>I,Z42
MDZ6H\9*WO<G4;55'+D <ILXER-O>! 5)I>&Y>VQ>WO8F+F#*#]4-/OE9^FH"
M06][:\MX4%FQEWELLM#[CKK'=&:R?,#;@+O=4Y#RLC<!D5)^C&X2CJDSCY44
M?@+7.\G+WF3,IFHC%Z!TTR?_Y&5O5818I<&]>TJQ>I>]R;/&@HPLE7&Y1\Y?
M7O72G[R5E[U5%VB5AGCZXYWRLK?*XJS2"$^=NI'F9(5+B4IRV5MK]H8TRQL9
M1-@F]&M3S/3RF):\B^ 8<+!!7F=8M23$Q3$2T<>.Z)P*G22Z);JEWI8X$$3*
MY7:$4LHWB>L#XCKK,JC<+L]2VO7ME[)(?$M\+^-[YPHJ"6 QRZXB%\#]S3,)
M:M5%O/]-,E[ >+VD^P9V;.N3_9UQ;:79;I>"$TN"Z"SOO"@&G>>)-QKNT72J
M^+OG)#:KC,W$F\+>V6(JASOLVLV>!*LT#78\UM [WXAP >[".V^G.-JP$=@E
M/>M58HFZ 7#GB5?-[MUH*H<[]=+<OR@Q5QK,)5Y%NV]7J<SOYFLKO?-U1TAB
M3FS,;8!<XM6AB5VALL941VETRN%;LRC7)W=D:7/Z)P9B1 :YO;\;UIX&_[ZY
M0&P4Q#ZX[7\??/O7!5H=!WWO/_XVN+M ,-)G%*&90<:49)&QV4#!*"/+AMUG
M:P7>OZA_7OTI71Q;YMJ0_G;5ZW\%F@/49AC\ ?/YUY,ZC<7Q5<7&\%BH+E<+
MNV@C=J)Q7E,M T8U?SUIKI=:GGPZS!3EGI1K3[9*896 ?+67)IJ1K%B\V7%M
MRWR^7'CX7S[Y'QUV'T4FG 2SW!.Y)^47>D/+%4/>)6=!JVM!Q7LK#?!6',O0
MM1V<E8"N"]QUBT /#]X@YMJ( "(!:%H6QJ=9C)IN2JI5@Q/#YL:2%\O'BWU5
M]::>@5W:B5I2KD24BP;U_NN77K-Q]ED$"DIC*EL1WBP$2RP'MA$^JX'<!@WD
M'HU0*#V%^U/+,UU)X>I2V*\*DB2N+HFEF*XZA:68KCJ%K\E85W5)X@J3F)=8
M(%%)+&9?F^#0S]^PZ6%[CAKLS$]'K,)>8<IW,ZTEZB34$C6:M5;CH.=W.DJS
M(Z\OWCAREK5KF:+J+"-4Y5&[UI*8*B6FDDX:+F-*@/,R;:59EX)+D)$+N+[C
MO+L1F0*<<^FUSX_H_J+#2K!-0$DZ$+4?4'(Y+*"<M8[ILG-1L=*J)QU=7E9W
MASQ74E=:K6.ZD$]0RZA53SI)S*!2C,VC-%K;CPC+#B=TEH_$<6U==0D=!VB!
M7N #>1=X$8P2WT6[4ZLW@BY!\/?6[BXJM]:N/1M$,&^3S17W@M3LL?XKMK7?
M[-2-AK9>AWHF?5E!1BX O/$-6/, +VOLGA*[\M*"DHY< &+CFVEN0NSNT1N)
MWJ,<6=Y[5>Z1"Y ^\2U/XZ3//H$7*7>.<N0"<!O?RG23UMPA""1A>Y0C%P#;
M^#M_8V K<5F:NARVZ<B:T2UR$'DCMJH[,E15!#O%WS*<7ZB*?7G/*7T3$#J;
M,-693(8+,G+^N&W$7\696Y0J!6S+KQR.=.0"T+I[0B"S"-4[!.[F5)R$KQ@C
MRQ!5N4<N0/S$WQ*9<XA*JLSJCEP 9G=/0[X_/"4A6]V1"X!LZCRDM-_*4T85
M=AYRF!Y$-IEYMCK!,CXE3<^RCUR 3$P=KM\>IZ&VZ47 CNQ[)B"=OOJGI]M$
MN[(<]SMQ)Y94V=48N0!X[A[^3A68D5 ]LI$+.*G12)^P3^G%KZ.4/[4-I7L?
M$&NFN!ZD,L<X*@6^9CU_\*43D7O>EMN-N4=$8D\<[&V WNZIOLV1(*F<CVSD
M(N1CZ@Q?5>6?P)5%M1&-U@!]IC-B.IBN71!DEI\G9.BFW/3;(-+29PU3E]CT
MM3\\QYT2TW6&5H(GS8Q%QK%7$89])" 6'=C=)V*_Z"KA$?)'HEK/)GL+DYY2
M85=BY + O7MZ<:>*G&*!OI=-<-YL2+R+,;)4QN4>N0!YE?Z,ZXXE/%(EEPAH
ME89X^H.4NU7\2(27"&>51GCJ#(XT)RM<471'7*2;JC4E@B#??^&69N@",&,&
M[=H33>789NG')/^.$04;9'6&A4N!% ?&'S"^_U; R6*)9XGG*)YSJG22V);8
MEAI;HN#P$JZ5>8F2E&T2U0='==;53RE O9?_WU3.S]:[_TMT2W1O0O?.95,2
MOF(66@57JV$7?<>V.D$M>;E:47'E5BNV,?_N#7#RN%SM[%PV#R_E=0^M^"O[
M]FNK)"]7DYBBF(J_PNK]S8\ROVBDHS2:XMTT<J0C%U# WVIO1*8 EZN=Q]S"
M4=T33,)>F-6*OW/T/0V4LA9>/:75.Z;3;N)B)?XNT7<T+LH:*ITSI=7I2JP<
MWC**O[-Q4\.@K+%PKK3.90U/NEG*R]4.%>QH)Z9YVI&08;?6JI?C<K5FBK#C
M44&HTN!-C'=G#M[CNM?@2$<N +&)IT 3$2LO5RL5ALJ/7GGLK=STVR!]$H_I
MKDD?>;E:R=!3:=PF'M=,U)KR<K5R@*?2L$T\@KD*6XG+TE3FR ;6T@*MZL@%
MB,3$<S.[1VQDX\$C&SE_>'9VCX;+!M;B J;\4-V0#6\G'JG=UYDONH'U^7JJ
MIKJ9\DIAKY-XC"8[[.78O[6I-+O'5*51/NQM@-[N.3_9OUI I)0?HYOD8^HT
M7U7EGYAU1NO!&Y=NKB# K#9+I,\]I:[5B+%5'SE%,S)0=[C53]H( MD(J0/O
M>V+-1]E"*/>G(,]<:2!48N0" )K8NC";,B )UJ,9N0"PIL^^[U@U(I+^/@:L
M5!JEF8=#I3 ]NI$+@.GN"=!TI4P2I4<S<OXH[:;.@TH8BEJH).]JDU5*E1RY
M /&7/KTI[VJK(L0J#>[=$ZB5NZNM59=X%V-DJ8S+/7(!\BK]D5EY5UMU@59I
MB.^>&Y=WM54.9Y5&>.H<DC0GBX])R;O:EKNSMV9O2+.\D4&$;2"_-L5,[WYI
MR7L$C@$'&^1U#A54![WW12+ZV!&=<\F51+=$M]3;$@<'EG*Y54%)^29Q?4!<
MYU4VE?7%5PVEW=M^FXK$M\3W$K[/]BZX.EX BUEV%;FY[6^>25"K+N+%;9+Q
M L9K)%T4L&/;Z#PN>SL_ZY2"$TN"Z"POJR@(G8E7$>[1U+SX2^,D-JN,S<0K
MOM[9OCSSR^>Z2KVS_?(Y"=:C- TVM"PX:VY$N!"7V*T;"&MM/#8"NZ1M"THL
M43<!+O&.V+U[LF<M3!MUI=M9+W>0H"LOZ!(OD=VWH7KFM^IUE%Z:VSHEYH3"
MW ;()5[ZF=@,/?O;^3JM<MB$+,SUR1U9VIS^B8$8D4%N[^^&M:?!OV\N$!L%
ML0]N^]\'W_YU@5;'0=_[C[\-[BX0C/0916BF$J"&_7EI]-S&>"($896>2<3F
M'&0);)X+KW MY$X(!89&3'YJT70L0]<PO1=PK)O85'5LP*S@ U80>,IGF^.<
M#3)VEW>%$2 89639@$J& 5C'19T1F9%[;0@?-O7Z7P'[P'(S#(Z1^?SK29T&
M)3EU8X.9)U%VG<Q&$WLQG\UAT),-@F1D8/4G:@!_LRW^C(8W_QS6!G?7-W=#
MO@UQE&NE&C)"AAE^)K41F"P_:W@,[[A V'C%<P>>2Q'']=]&II=?,)K8E*E_
M&=Y?G5P.&1&L,;JB4@20\.43AA?1!XOCF75LY,8Q7QS7MLSGR^'3DX(&IGKZ
MY9/_23'C_C"Q!VX\L.%5R)U74>Y\"GF2404[$W1K6*].P?/\H)L@0RS/P:;F
M?"QH\-3"814[>0F+7.,21;O^$VV3@;(08'S+SE/8)P'A0+\8L!#SUY/N20'8
M?-+?T'?8CHF#;H"'M# ]M S3P^QW>HDN$94&4<TB$,73BAO LVJ^-JCY6G@D
M4])W?_JV1:5O2JLSGQS[PKY 8_@6W<^(C5WJ2?3!CWO179TX%X)$U5?\[ B"
MEB<%.*QH0D%N^E&7Q*#@_[EP$/4(6"[AM/0J)D70++$$LE%PB5A;:7>;PIUX
M%&ID44'4BZ\S;$= U"ZLSK A7GM6$8_-K@C0R(%H&C*U"=!3U0T"OPTD*_V<
M_DNE=M+,MEYTZF^.YNB#1R,WNOD16:')A(4SF82Q&RIM*QSIR,=$8J'-P1:;
M\C69@0336<,&A$T-X:D%@_Y'MJHLR"!([ :WS:J,4JYOTM:N(=TR,0_JG;9P
MYL&1CEP #..;?*6P2W.&86][D8#04KUH&[4E>P\?F),2>XEM$^BLEO#K:A>E
M3&1YK],0CHV.=.0"$!C?ZRN%+,\-@:WZ]H-40HOQPQCG#S1TX%#J @60;KX0
MT[7L.;*)0^P740.XE>*EQ#Y,VZ1Y2+M;R[YW)\2^LHFFNS1Z1W+OWW!4**@T
M_N*[)J60Y4>%OQ*8Y%''B-;H:63D(MUQ/'9:7;4<6D0I!*HKS4^)_7FVR?,H
M_>[' ]/%YK,^,D@?^,G-(B$CGJ-[I",7@,+X5'(*J;X+"H],K!_&1+^:  7@
M4=V,IO08-5@XW=#Q2#=D>N_H<C]'.O(QD5AHJ[/-BA7H^1PJS9DLLJ@;0 L6
MB/Y"#TI(@S-_57^>>)79-H-S8*KTJ#FY)OS/@?FXH-S^]B9,&_ZVU.A(:=:[
MPNG^(QTY*T1N.'!^'I]R3F%]Y@3)19A8:7=W<(/V.%(NM$49B&S'MQV) S]B
MQ_N(?^B?FIGD324..^8'AJ7!/@7R>K3P;&80EY_;94)?RO<BN"GQ>JS=!?P/
MDY*4:%ES5:>[0Z5G21LUE!A=&\ 5GTS>2U1G"JYU*^*L)YX-40(#?> G]71I
MC1?!3XG78.TNK".4RY*/6DJ])POO!!FY"/LA/L.\EXC/!)(1O[!SOH-,KZ8U
M_F"3&=;! G^C]3#$B012>)17$*16FT<2[P[:76S[!+TF8V+;1+OA=.V;&DN2
M9Y;-ZYZ=2Y.[G&"+3Q'O)9 + EMS%]L[;SE]&#OZD4ZI9HUKGD.D9"[,GM[Y
M3#3MH1H71Z1#W8]_.#R3G:5!W5":9]*@%F3DW"'9KN]\PKIX2#;/Q#N^7P);
MO*^J, G703,\9XW>V'E%5;4]LC#0!0%ZI5DLPYQF0-,'3E)Z@HP3]-NB<"8+
M"ZFKG)WO8)$? U#*#]%D*[Y=SS#)F2]&U]5#MYNO[U@"<S[PF)!-7HCI2;%>
MA%C/,),9T.^1DR^+ID=M62 MR,@%0#'#O&?V4&PJW99X'F4)#/A%GTB#TB9:
M'"T(M/T7;NE9*@"W9=!5-04;9I@N#6G_C?X[L)PRN0=O]XOP&O)NL>KC>I-W
MD&'2-7-@Q\2+NKO?0]IXY^4[0CL)BU:F.[;8$XL=A>&Z3)7&WLE:H"?M+/W@
M4_/K_ >0,L)@B^;266B-KG(><ZF5 "0ZQI&+B CMG=<M I=Q>:MN;X<T047*
M;]:;R].B)D?0YO+",DS5EGN,(Q\3B4M@;?H79_-$HZ:[GBV:.2F].Z[I&_$E
M &F:-N$Y:^P]M/KJGYYN$]#YFD?53G9]/IH=Y2Q%<6#6_IP$J$  C4^@I^GJ
M5 ! &\I9<WN[R(/&&PYW=0J+-_@A!M:1SY$1AL)=N<;>3;,37+G0Q\C'E4LI
M\LLNWBL*MKU;8Q\&;.G$=]5"P^MQ@UM^8;6,&QRM4WFD(Q\3B4M@-8+XAW$U
M7RJ%'3^M,3(L\[GF$GO*FH&*L)TBXS:#U%1C[WJ&@(CT%P.?A/?C)V+JEOT-
MR#@$*EX#$;-POQI**T5)PU%!H]*@W+L683]0'EE;T,,$BY>%/GDCMJH[3.@[
M]&H69,WH3LI@00'LM7<Y0I2]V(4Z]YQH-SXUM0R$O7@W<![IR 4 <>_Z@QV!
M>&0"_C!6_2.9>;8ZP5RHN[06T+/G7+H+ FF9=%GFO[WO[PZ2+K>6O2#[_?C*
MFDXMDS%D)EWZSIMUF14\8H V][X;O!" -E)<%WX,1<A;ZX['8>!9U*S@47'<
M!H;;^QQ[0F8G3#ED6JE\IK3?JQF.P8(_1FQOTB9['X O MPQ:4O1U4MA!=!4
MO>C^,2/T0?,/&GVD!2=4ZRA<]Y _/?T%-L_TFX7;Q'%M767]O^%[L9A2&-[+
M5'WL?5Z>LA?]_YL%#1]#\M$O^J:V_$'DR0=BZY:V>@[MYDTU/ VX$_["KB1Z
MQ"ZY&8^)FDE.HJ=T&^(=>3[2D0LH>FGN?0"_+-B.Z[S<26%G5<^=N4JM5!0T
M(O S>A4%C7K-&+4$88IC-/\V\.]*IKOOW(\9SS::M58C4Y[-HB2^I32;V\^Z
M21='8CR"\?9Y+,9;8F*\T5!ZK7>6U1]Q^F4W-45HD_92**@6L(9F>2.#[.?)
M_F4W3EP;;A=6;%,(=[<AMB6E<MD(FRQC._4$.R)[VS^+*[255F-W$7L(P.[K
M"523=82Q6XHIDA8!@)+L1TEV,4V[)V\V,PA-86,#:;JC&I9#C]=3&XX9?&/#
M>D6ZR14$R'1YCN>8#GD<Z<C'1&(1(Z-K_3]HQ0>]"PS$$ @CEU"W4X&?NE1.
MX2F_FT#E;4)@+,$<SUR\D"Q]C=;>;3L&/C$>@#IW[[FJ(]+BM]64M=GEA-'>
MS36RAU&G)1Z(1#0!-XI:%[^)5D G/A/LW2%C0"^2)T.ZYQF*T_H.'0FD,!4(
M1WLWO\@%1[LT41%1G,I(GG23Y,B2Q!4PSVC>=3496X+Z(/$U;GSEW;8K5?WL
MVDI.[6M COLQ+ZTKKEA' !)+<*V!*[X!RK;+48L#5\HJ&:&%\F'"DX\5+-7,
ML5XBGY*T5GPOEVW">[DF8@M?97^\7X2:,PG(?  9W_UDF\"7@"R+'5[5POUJ
ME,^UXGN^I#'F5XRMM<JY-:8\8"'^L18P51.S\7U2TO@(!\'LGH7UPE=?R5BQ
M#"3*D26)RV^C)L2*!3ZD(WP@K[USK=2&0-Z-J648PFMU^2DAP4)X0HTL+*QV
MKITJ#%;ISO8(+8$%"0P++'<K&(%K[UR)%1.!RY:5.DJ]+AN*'3,F=Z[JV@63
M,AY<@GAP>91 -:)J[?W+.K9%U2*,F$4\+3CE7X)XFD1K7FC=OTZD8+3*(__E
M9!L9&:SN1DL2"R=/#G.4'T1RC9FC<1<ERS/\QX36(QWYF$A<@EAH7]-T=G42
M<JW@I#XB;S/PAG67=1SAES> F_RJNQ.05BH_U3_#<PQ&M@C;7*9TPLYWKS$W
MXLXRJ:<PM+'I\'>&=!M:5YQJ-Q&BW?HT^P>0K.]3[($3+(OZ$J77$R_Q(-3(
MPN)OYRO7\L5?16YF^^2.+&U._Z1+C QR>W\WK#T-_GUS@=@HB'UPV_\^^/:O
M"[0Z#OK>?_QM<'=!Y?-G%"&L2F@CAL]+H^<VQA,A3,Q/9]B<4PO5M%S"](,[
M(10]&C'IS3[P-Q:(QS2&ZE_Q \K#<>$#=OG2:2[S-,C87=X)MNG!*"/+UHC-
MZ YSOZ@SPC(2KPWA0Z5>_RLP!7#<#&NTI_JO)W6JA3E%8[7W291;)[/1Q%[,
M9[/>7U+O*Y&KD0$V022_@88W_QS6!G?7-W=#O@UQU&JG&C)"AAE^)K613?#/
M&A[#.RX0-E[QW('G4A@N_MO(]/(+1A.;,NPOP_NKD\LA(X(U1E=4O #UOWS"
M\"+Z8'%\LHZ-W+CDB^/:EOE\.7QZ4M# 5 'L_B?%C'L7,.55R)!7489\"MFP
MX(E]\$SL@1X@VL=\1UXG-E<-=]Z4V+JZT'KUA'OD4O3^>(*!]#$H7=/U]1@(
MB ?89!7\]2&\[ZO![I(CH*)F5%O:'N%CZ:9'M#ZH.?J/W\?GY[TV/LEM$Z*H
M0 T4;OQ__=)K-AJ?@Z]19#UHL2 4K*AH@N6\&U1,70-I;)U=#TNETU?/T4WB
M.+YDJL1R0Q&$/IS WRG-FXW/"E/7)U=<CX<?GKR2Q=\]Q_\[LFQT8GFV_\^/
MP45^#L*(6@(VF8",T5] S7K VNS:;F*_Z"IU$&E'(AAJ9F!6RJZ ]48O$Z%_
MS@R+7<2HH"FF#>*86>CG7\=@*$[HF\!LK'GP.O8Y$R<SF]X-[LP=$&&.0N]^
MXM>=L'&F.IBD-(YFZ\P<1F-0]0:+H-$;H<#N4R?TP3G"-D$3BUY#>(K^08(U
MP9(  \_49( 5J_0/PV/XH"N!*8X,-A11)R:XYL_^>T&LPEZPZ<&4K!FQ,7><
MP\],XKY:]L_(?!2V2[ RV[*F[%^J![.>Q_X<]GD*5K#J?QY9%=T7NG+='-L8
M(.NIU,H.]@>^PBY;:[@CW%;3;33V3&8FGZ)[SUZ0C)INNL.Z](7+G+-//<.-
MD-"G"!B_!$0J_1SV\ ^BND!.$^P(3MI@'I3 SWQ9T0_!(#0,_]/(HA9O8*,,
MAO3=L#W\HV"JIR@\(D&)0/T3V'RZEO5!%^N;8$#JB! 3)C_AT0O8$@XCLO03
MV($^>%4@$JGM2ON=&<!:A*+T0W_PD<,!?AZA?DA3,-><4\[>"/@.O6(Z'=6R
M9Y;-=#!,^)H8^)72AOU=)=,1_+)9K[>#'P(N;4)?;,SA+Z!-V"_I"L,7P23'
M;%ETGX UP!V9+RW"W]4Y&H/ 0(\TJ@3_57\J"%049E;";\2RGXEKO9K!AZP$
MV5=4] D.2<8=A!KY\2, TNC<J ]'UJ=(5[DV?%%N0%[2E8HVF\SP C$[^D%T
M5ZA#96M,^D7C:!360%'XQ<R 60'P@ @&0 &^)S,?0W2X'Z8>6G6L"W"?&3D8
M1/Z/4_1TBG[K]Q]"Z6W3:A<:O/,8\:?X)T$TW3!EOZ:4_\/3GOGDN/1@=T>Q
MD6"IEDW'"OIWTE:>CD-H@;JAXU$HVFSR0@ [_'TL9.B0H+;&8)NQ:%S,^A8S
ML#TSAF?O8\]&7@E"BDH<!!K9HALSPB"D%/0*<W_!AL=@!MA;+(2+>LI=\"CE
M&A--0*Q9-A."=$JV3@*% U^^8%L'=8 L6*=-)^%-9W[PDV["*Y49A@[+8N^D
M-VU9C/T1()IP):?JMNI-@;;P6D?Q-XQ*3;9/?$*4.8"-V/293H']I^M9[#D>
M61[?;17;-G.RZ0K)8J]7]V8AY,$;IU/3=(J2&<"2;BAC?+XLKM1@,_N@)6 ;
M@NE-\1P( G2V^=/PL!-%!5\C?\*G4;@]ELWPSB,^GT&GOL(FV4ITQ]C\ELFS
MLHE<BV&^;KP\N5?=,-C*7JAL<Q96JC$/9QN^.81FR24+-4^_,I  V1]@*VB.
MD&ZQ;YP>U&?:OU\B6]+]>,5?FO/_)OE,N8KOI6A6@N >88-)9V="" 4_I4FH
ML%L-Q3<].(=/X'MF7@#+@%&L<8SZ;N]VA:"$%EWH*_/VR?IT)[VR,'.X@N+J
M8E75_#@%]1"C6>)5T >F1.J?E_1)V-\9)A@[$V:9>+;C4<?2CQ3:GA'J@V?/
M\,U:7WT^W5PMO95K'98/9Z8'M]1<GWB!'J+_]AT:_ISK+&^3XXT<7=-!SE,)
M.."ZTYKIIJ^YHV:KNXJ,!3%V(0)E$DRW'208UO[P')=__L$WLEF' 1,V'H8W
M:>B;2CVP<VUFTE(;]B/ &22V0T4?[-V,2P*PN70;?N8;&W&SF%F.'K5)-FY-
M1$TMO _P.MC]D<Q& <VI_IQ8!H":^86-L\^L;-:=+\ZKT7L'8&>'3'GL@UD'
M'#(#V(VI!H97^,T?OIO" ;MAQ2N0BPE3^] )#:>(_POK<5#?-*GB>61XHT;!
M+=76C7KM?T-'=DXP]0/I2]8D0,E5SA6Q&5B!X6&Q;*&!F;<0)@!/&MH&#<S]
M)J %,VF"# !@E^)S%M%8H1O$[*'@YX$K"Y+IPG_@@_Z1;CKSX!:T7,'D*[5R
M7D-&" U-)F4)5FGYC*:#+T\IZ1!F5(%D)M38X*&(Q?+"'[_"UXQ)_==R>S&,
M!8#/3Q@[TCGN,<F@_7U@"?MRS/]09[U?8:[,C2# UL%T7TED0N%L.%&0+XM7
MW\U"#4'DQL=Y9,E1PK!IP()@1:^,--CA!EBP;='+12+"AZX]SA^GFA&'ZPC?
MXLLZ1H>0A7V<K,]I02K+6=C/G$#/SZ M?._9!UR\J\\'WKSZ""R=.&!.0 *9
M%KNP@' /R"=[Z 0E2,TX&6Q'):0_,$^I+-E8)98>U&!]6)@*/-GCBVE1S-:=
M3Q6$5[5%EW) 8W6WP$)Z.^D5-#NU0E[-J)TT!S\19"*3,&KPB^!-S$I=Y/R7
MXFJ&/H49^1$*-;IWI]4#_6VX^0.3QE_]O)H <(\_EI "[K=@7?Z=QASNQ^'J
M(HOC#+ ]L=55SUH=-5^.6#7A%JR@+R8<QK1Y@%3G!K>:W&QAD5286B:9@VM@
M_Z2>GP]^[J-I9.3ZLISB "UHOHKOXO%^U&4/'5GVL$5>^+R*PPJP:"(ZAI.;
MHW%OU#G9\-N\>?TK"^)&^)?;=N QVFX-2#8%$>8&P>1DQGY=1 K#>*-N+R*M
MOFV-9V#?OOFA2C];!C+1#\3"S_[F@4?0JC._K\/&6O<&%TD<)GZ"*''D1=1P
M].QW"2(P@\%=GH+%[-$0#\U@/Z-OX-<8J &_GGEN:&_FKP[S'Z$/=@WX)1;]
MD>5RFP.C/SV+&AO^Y@!(_+ ^-6T8-N ]X+/3N-R<9J\P\P84/Q7"=Q>@$\3@
M&4Q"FE$*45$?1@$W;'ES9<O[W.7D/X<AJ7\$/@!V><K2]]SL$(VZXX>)6-@0
M9L=S?V!%,1>4N4]3ZV61.@*'Y@7KQMKK@JQ%$$^A>6XZ<>K1<82#+3?V&,<L
M/),8_F"AHN4\Q!)ST.\7B%YS;:+"HL2PH\(]4A)#@T%!L0BU0$;4VJ5&L!!F
MW\Y=E</@O+^DZ(IB;;W<EO</%H5A>6[NNGNV.@')[_,TS8#1&#9+8 *N Q+0
M_#WE!_"-:+J>9Y3B4V5A,G"1,%K EP<O05K0B&O@*ZW.X256CC,ORQ\RF-_J
MV"QK1C20ZG0=<X6RNTUH0)X^[*!GR])HLJOD<<1_,''#8]Y4.#%R1*ZCI>0*
MA<S2YL,OW?F,)FA!Z!'S&<PR$+^NPPIS0.I@W:$E/;H]932G\1HG#/-$Z*$1
M*O5]"%/J+"$#!"4VG_4(2!R/IHI!T('DM7CM@NG2(G*:U@8Y3WR+GPI-/Y$:
MJ97S7P(R88G880G%<Q@$T_P@T2G-Z'$GV9ZO LQG &9=+=2!0N<7I@(4Y,U8
M78;I1Z29V>J[^H ^/^Q$@W=47M$H 05=I*S&&M%8K\,57Y0X-,)F,XN#K0OQ
M[#H/U<;CN8(^_2,/#*-'X$X@M# !K)U/" 6BW5]09#T'BF+QDB8ZB?^02/Q]
M0DS.=)81REUXH4Z%-16+C+W".#/P!0L]C8EM<[N&F=$^]_*:&C.PY9D9 UZ9
M0537"?-'(2\RD^=MQBI<F&%')85K!%5A5!FP+)B? :)!Z;4)!6;/$XWC!T9]
M($*XU;:87) 3G-)RNAD(H1FQ&?M1V](:P69Q=CNEV2>_$B,BCU[#:)Z?(PV3
M'0GOB286]/&B^%%C^4?5Y3HO$LKSY1 5/D90<Q9$VX/8?M)8H7IE93ZL)A2$
MK088H*+*H05T/*5,=ZUZ<N-[I) U (< @N,\H5/AMJ.%D>4\^:LYG-C@50J
MO6G,)J_D <<D\(""NMYE <'+[)R:28C&',?5^N,9-2;"EP.>IY;F&:!HHY6^
M2//LH/ XX%#F;_**VJ6/G(AE0[DOU-RT>M@+"F-9N1I8@,QXI+EH[OQA[87.
MS3="6)T7;14 'S'CZI3ZF=A/1RE^+@^L2K"#? GI[P[Z@!>S"C3Y_*._YA6I
M'*T$6VPSIF&J^<(*7EDW#7: Z)V"BGD.:_+>9KS.CZ:+83;@P(-=0NL!1W/N
MD#(?D>[D0L)SFX[.Q.7%$69MAEFYN"]L_R>H,Z-#\,J^^<J3W&(981ZJ790A
MAA4Z8  M[+@*BJ-!3/VS$.)HOWZ\D>4()(YBB\Q#<000YR*(E?JL"R'^3V [
M+4QE,V[$ZL^:P6)*<>\_17%V%#@%])F)/F,F?EB2X3LU87'R%*P.-SH@E94Z
M,ZN8(08"A 76%D]:T0,"='[LN>6W^P[%1BMN*3Y46M9ZB!2S86['U;@7]FP3
MOR0"'N?I3[\TD/IUCA5#LRGLU\1@Q?.!+.5RGYM2004.M?54OT"':@CFR8[U
M-S_,$-;@JY:S2,[J+)WKXO&8HH_!B3G.CC=C%4Z40*^$_(31_J0+8J=/QJ@_
MJ 5'&]@Y!H5#-7P1TZX@R#UZ=H).C/K%K$2X%CS#C4IXD'T?_E*/6(B@G/C\
M(M4C*U;]$L 6NH]5 G-??MF4'Q$5T]!#]'=A9M!S:#@!9O#3M%[-8-TL3,R#
MR1%OW<\N6"JO4PE"3V'(E.DE[@)XHS]\WX%^[\<UPDQW:3&^'(IAX?- >?OF
M#'>ZHM)I(=I"(OOI%?;#5X#<A ?LZ*XOJDXURR]<5PGU&'QK!P5:G)DW-$03
M-6W".@3^*Q[RXXBF2V6'T'Q!J'!IQ4IW:-(N<EI]&3O6E)6ZA]7LV#@-#D(N
MC<,+ZA,73T&ZV#O-XW%[X-M6O=:H=\"$G+/@HFZ^6+K*F*7/2D2M5[9NQNI+
M=A( U+=CM<768K\=*6A6#%.=^[7B$8<P\!/]Q,52.@F,-!*&=NCO^*P\E_EK
M_#@7W__ N%+\LTCAYZY-<RK<**6[0>-%CC/U+;8E71=4C*X"@1O*FY9.STW]
M);%G1:>Q$A'I._?C!.NA'XP";O6UY8W<L6<$U-VK\4G]Y++9B&T.S;9DPZSK
MW=A9MVN-9JW5R'W69_&3ABFF2&M2&#@T7 *L:LRK6\M&NW+.PA.(WS&M9J8%
M5M@0PX9.N'AJFPT=+JMO:L&BGNB:!+"D0Z.9'S?BU@T/1BVB:>&)'TH)+K@6
MIR^C!\QH&1#82> 5DI"4[+P57S1O:A4-&:X=I4NPLD/;%V0RV$ L:TMUS2S.
M:''"Q.Z>)O/"W(XWRR-&XW+T<!BH(*8VM^A8?KPY;I\XXB/GNO0Q?U]4&[/$
MP_(KZ=)7XP\PJSMVRH'6..>GRKE_SXJJ=]'F9(GCE]>_4:FWXW1Z8B%8T2GQ
MHRX%Z\I2L+U*P?R"KYA2,-SK=COG.78K87TY@MX0C!7O><I5H #6GC>5+M8%
MVI>M2J X5DP$G99!3;#]O!H^I\K"6B)*U+7@T7/F'2\_Y'O9H$5HV133\='(
M>ZCC/R\UAF 0X*_P+^0-!?5R?=QZ@/XS]TW8))@U4>/61"3,O#SII=X6Z^TL
M(LOUCX--P2M;F12/"BW.2@?9?';DT*%*2>45!30F9-MA;A'3(!RHPQFV77[6
MC^?8@H,^7"C!,H+#/<G[P@.!H9W!"LD<5_&/'?DQ?;;'W"U\C3-S_.-2?A8U
MB']06+ 3WU._U0JSH_C)UZ1,ZND*!Z\H4ZXS*238K+EUXWNEBQ2,O?+-5 >U
M[%IFQ$Q+9TM$7K-N3*2)"53/UWF(.<PEA)C=KR-J9#GEE*_LK!U; Y<)-2X3
MX%&-]HM10(R,7=8YQI=38\)XD9UX7.0L>?!M1";8&"M<](1]*!@+4OBSRE#=
M7(MG1<.RKXLL!PDK$J; K;Q)B 52T]!I1A"O91=6BS-6?*K$HX0+7W!=*/A.
M4O@COTOZG%=,4#$5\^U2!ZA7PK8#?!H_Y,R.L"Y<NJ!YAS^'<+Y!3-,ARV>?
M_-U$S[;E.(''$ I.=[F^@LOA)9EKC<<.<5W>@L#AY[3X6X+P.O^8$0)6MHP0
M$OJ\W&,,CNGSV6@$G-W@M'X0K]FLBI;*'MD"-H+0LA,P&/8EX?H@C&%J.BR=
M%C:O5>Z,:$2>*VPVG!)ZO::UZB?SQ8[(V.*[P!/KVU(("U\XEO*\=@C<4SP/
M>@2LZ4K&>"IO2."P2J/GR''3:"5-?&*=!6_IN5*_B0W776$O@%BMN[/2]4L"
MP1L/2A0BVQI2>;VV*B32ZN8%J*(37\;49K<Z@1<3'>I>/<:;CAPAG^(_+-O/
M5"5( GVI71)]B_%"6+^C@.3!GH3\SK)+?B6HNSY*',.'I;N,SR*<Q7QL9@:J
MX#B30&IR"X0'[9=$41"4\2,G#&.+Z8]AS( GXR5EL.<@+%W=T/_#@$D?!H$]
M#=L7A26W$PY:?JB9!8-8J0D3;\MG$D;$H!*2"AC6_<M=S%GE)PLLVX8GQF#,
MAQOPR I(#;^"&DPL!KM5SE@I?<9H(:P0,X8#F"E^=SM_7C[[<;5) T^VY3U/
M_ )@NE&\OHPO75_.1/ECA#7;K%M 9%(E3]FQC*M%\P4,W8P+_0/OCG]PW==G
MFNY$SM*/YOZ1=AXH\@_/L]*9>2@6%R*"<BU!'P# ?E:G7J\'2=:/%P>ND.WL
M?>;U>K$G (7[L5\QRP(WR7;CYN#:ZA+R"K;EVK:^Z-L_)MJF*]Q^J;/_[775
M9Q 5!(08L"#SUY-N#J;_>A?HB4U([3NM\W#0#6L=X^?9%CUF_3^5Y:ZS!R.%
MI'U&M'_2WU!Y*)\^3"ZAM@O4FD5 C:HV$4 D:9HI3=N2II6CJ>33ZM%4"#Y-
MF5K/YS++V_[5X-M@.+AY@HV[Z_]V\YVFY@6YA&OE^JP(/)8G5;5K!N6FRTV7
MFRXW781;3 NZ5GGE%M/HF=P@ BK"UI7H9LA.8K_W]DI4]7<_G/I[9->_LP+R
MWVEJ_O?;\(Z7)QYGYE\FM"N@XUSY54'TNL@K/Q=U\^:7[?39D0.B#?%;)G>7
MUIM=X2Z1%&ID41':C6]ZU(X@M%T)A#;/6Q*AI41HZO,:)4=H[_Q<(K2,"#V+
M/Y4?<_]SJ1':5#KG/>$0NI,A/6;_*]J07IR(8Z5IT2L<(W76B_I1D9AO)<2X
M&EH\I*^8;H89&?*MU(;\)D;F7X9X2#[6(!+?MSO;;?N'_O7UX.ZW*!4.@1#)
M+F*P2S>^;5:<5U$Y=CD_;TIVD>RRDP&9^KA&]=BEUVM(=I'LLA.[Q!\BC?.W
M*L<N#:77VA[($H%A2I#A&%HN-M "'NC[XL2JF!F/[1(@RR!),:Y58HO5G5PK
M4=BSW9/FWS&C.3Y:O:OG(P::FTJSUY%H/EXT=[-Q3$1!\UEOO7N;1//QH#D;
MOT$,-+>5=JL<GO.^&9IJ\I4PKGHUZ^J.=&1)XLJ/+$E<^9&/B<0BA@=/+I_^
M]32\^?Z$!G?#F]\>^\/!_9TH!W$D+"N_T9+$E=]H2>+*;[0DL7#VPV'J/N-O
M$3O\UE4ZR-=I[Y9.C+D;+5H>\,2:<<8\)&!(\%QI]V2IYA%COQM_W# Q^5@A
M[+>5\ZY,[APQ]GN)1VWC4Y45PGZCJW3/)/B/&?SI3Z"5#MUG2KTG*QXS<DEX
MQ>.3?W]MU$$1L]Y1^+.?R7USX]V-,G%>.G]" '!(6*YY O'G%1,]@3+!,IVI
M+P X)"S73FZD[^50.EB"%7Z>P@H7 !T2EVOV<^)YU7C[N4+.8SKS6FA36M8,
MRE22'%F26(XL27QT(Q\3B44,L)U</CS>7_UX%*IIMX1CY3=:DKCR&RU)7/F-
MEB06SFXX3*U@_$WBA]^Z2J?-._'-KQ.3=S'WHT?#?I&O_5B>B &_5DNIUV6/
MDB.&?3>^1#8Q.5@)V+>5\T9;HOYX47^6V&<J/O=8#E@WFBVE<;:]<;P$=G6!
MG5CU'9^\+ FPNTJGM;W=O BX%C$L&5OW%W4RQ*SWDQU.N6.2V'=KJV,B,$M+
MST/RPA[>2GR%;1IO16!>D.Z(9(7=+;W$6TBVNC#E==REAR-Y91]>20QR;?6*
M2LPK%76:"LK)@)]T/^Q_0X\W?[^Y^W'S)#1CMX!M-,L;&:20V,7:<!EY.O$]
M66,\'3$XK-U*5>6_RF$MJ8RJ@]ENXFG;58]$#,PVFDJCL[L!)3%;(<R>)9Y3
M774=!,%LNZF<-R5HCQNTB9>3K]KP8H"VV5/JG=T#G(? +#._/[DC2YO3/S&0
M[C*8^)T'6Z2KZ_\.)W%[?S>L/0W^?0.^ YT%8A_<]K\/OOWK JW. WWO/_XV
MN+N@^8C/*(( @XPI ")SRVF$+V1Z^3=/8_Z:\^43_"O/T2+K6=K !;+KK42S
M-TD<4R_T(ES# _C+ZGP(/_]J6.K/$T0 A3/ZF.V1D]Q6]@]"9^WH&KNO&#@<
M&V@,*+=L!^DF\(5+[*EN F,A=X)=MD3;,A PH.F,"3SE6O -O,5G1.3-:'.\
MB7\_LC5&)+PLV?*_5:WIS"!,-,#WEK>X*OD4#2?$(9$I4+8F?&R#/,/L7-TU
M2/+X"GHE:()?",)H9L.[:&:,RB7ZX RSZ^ 4=DGSTJPGV$$@%H&L_ M;=WXZ
M[#&;O&);<]A,7TT8$9:&8#;T*;K;](O%<NV5Q=&GPL5Q9JT2"S[1ZZ^1B]^(
M&$R8^C3Z$A.R50SI(@[$A7P;/U"X.3I(?FQ_Y)O*@8]M@O3IS *UABBL*,.P
M7] ?J)9A$-6%K\8P6(AHA_V*,+48?!=DB..!2/]--T\W/<RU7/Z$9&HJ&&5D
MV2"&F*8$>7-19ZJ0*<6U(7SE6J__%0@.9LP,:U3Y_WI2IR$EK@-C0U$G41-H
M,AM-[,5\-@>Q3C889R,#JS\C84\TO/GGL#:XNZ8GB-@V1'9!!4%!;-B'LU1#
M1L@PP\^D-K()_EG#8WC'!<+&*YX[)Y=IHG#^VRB78C2Q*7_\,KR_.KD<,B*
ML**&%=>G^-)GYT3+HA FC\*1L3G]X'?<ZW:#6]G@6Z+U7?^;^GD7:S@_/F4B
M#V3]C.I#RGP3^(]!_Z%:CAAV2#L^E)'"+0P6UC>U__&7=06K.I!(I$,[U(!G
MRG5]PZDE_L*N<E)\*X';*" D(]]Q^6FI*A69WL@!6X2J:6HS^ 8$Q7UHU*R:
M$E2$VD2E<DD#\X!1F?X@$*1L2ES.SHCI\(=@-IYM$^T4_8-.185MXO!(M9KH
MC!F3A[/SK8D9[)].AWJV+(T:'+YYP4R8$2%FN#2;VC++2ZJ@"7)-_*7Z'J(0
M3)BZ,C7!S7T$T#V#APIR+UB?_TU1_/=(IIC;_3-B,S_:!(Q9(WB&B>.%;:X%
M!/"Y@C/%U/) DU!CG/*&RG@.6(GH8)E3/J#HY?P3F,<<^<QT-RT7S8G+X:P1
M WY$!X"? ?I?=,J-GDE=%O*F.Z #GA7XB5E3Z1P-@ZDSU0\2@$MQ:]F+?T9&
MP6!*@6N@F^!5:)[?-8^:^2:!T;%-QP,KRUFX%,2WM#@?4J95X;=T@9I.Y0J>
MS4!8LO%AN8ZG3B(#T[7"BS2++4_3'=6@PHKY$91C_6#)S*;,3+?(WDH"WPTA
M\&;J:&$8SR8SRW;]'^D@(=BP$]C'55)0@/V'CJ\[ >E.49\Y.G_S8 M:=051
MH"KK%(9'_I(8Y.DT5ESAOG,_3D;\&K[W"-J U==2>JVF4J^O9W("H#H7!4F%
MS4;MZD]S,W*7(ICM0@X MM>"A!EE<;_ _IE+[_!_Y,RG(\M@,^NU8&;TN<NX
M"6Z95T9@^ /TK#Z>LWAK,G^<;^(/7IWP'3@?;''*\4&XT[E?<'Y\B4)&K-14
MVIWS>%;RPS7;)1.57_3)Z6(="U$(AI7![)G7B0XB*S"@N&BU0.HOQ!/(+ATD
ME!D*91:[V<'=R8_"R<Q0--8JQ1W-^G;NB-3N@+>2V+LM)_YH**VS5CQ_V,3
M+F%!R5FD-)_J8#WF[A"JF '\@7E!31[XI1]!)$N1T9"CP@#/*;KG'L&J>G;\
M:6AIIZ%LR2+DJC*1L#JST?QKOESP?G6:^90LT:5#(W/IP$+ *Z+AD3/0T(HI
M(MQ7;/3.V@GVJ2/57Z4QVRP6LS&_WA>S[?,$0W C9D=D;E&7U,?LZ>'52VY!
M2F[1(D/'(_]F>9Y/95$):N*N*^=7JO(WP:45"Y=VK=&LM1JK-DU<,<0W?S;S
M_9WI5B]!6,%4KXG*P(A:#18A:/-\ZB:/)WY)K6*7=%9/O:36J8^>)V_DN-AT
M=?!8YH';PA+$05AXG<#87=\BMD-KHX#9I_$@%[")230_X;P(.(?O!!7 4LGZ
M&YK"]DS\Z(Y#8S_PZ%+ AKWE_V?OW9O;-I9]T:^"4M;>UZX"M?@FY:SK*D6V
M<[1/;/G:RLX^YY]5(#$4$8, @X=DYM/?[IX9/$CP:0 <DI-:*[$E //Z=4^_
M._L3.*" A4BMSC-S%V=H! ;(H%LMM>'=P8DXD?'%";\92EB$=T[T*:"&=&FX
M'KXT_%.-02*HHY-;PXN #@"AGC_#ZQ7^8K,Y@A#T"PKNX/8!E]L!,%8")1C#
M,EPK>&+&[U\;(PN]%_>/QL/[C\:K!VF!?9^$B7RTO!@#0. ^#%Y?&_<3::/,
M?!3^'GMA/(:[+9S$+IIJT:(J/(*A2=,8Q:'CP0."K+CM\L4!(@[C"5 M19L8
MKA_RZ(X 9AG"LIT)K(P2JNU8<#*T%-OH5"<_.DTG"1V!]Y T)Y;CPHR%SH5&
M:L.RV5\QW,GX _Q4F''7D(X("'WQ8]?.#@L[2@,SL9/<,%L3?"L: ;=YXKNN
M_T*^4KESUGB,7@(,3UC9?.!O"'OKB:5&)\$+)V+')0L,I_Z+5Y=Q=QV!KZ\\
MM=7O.I[">;L,[L0<K3],D,9_6>"_/U \U'HGK!KJ<Z4&YKI3W*9VV2EN,O #
M0W;0$O?_7O4KX-E)>,F_PBCPO2<@OH QXR-*#:'Q/B<N_.N?XIGC[K@^XA\\
MXJ\@%BI[P+O;*#2B=D%4NPY$X76U$3R%&:>:8YS0^7;U^9[U^6KZ/>_S599^
M5:R>=O5VR?*@5K*?,I4\2NW!MM;F55SS[/>OO^ !W3_"\=SY,R"F1;9@AZS2
M4> )6;&1?4ZL!V'&*OPY#EC6+-Q.4OT:0+0WV\ML')1Y^1\*'/99PVS/XL?'
MAME P^PD8;9SOKT:,-N>::]AIB+,=LZ05P-FU7*SG9+:3]8M\LDW_&C*,C%]
M&+[/DY9!4)WY 64^>\8&S_J>-= K@<N#QS8 II4#3&O5 ?\?A1X>F)E,84BV
MY-IX@,>6?8B)/RF[>1NVK+BZ]@%;)CPX_[[E?JSP"^6W($C+W+^M4FJR?\*?
M%HI$&_()69$!A#8MB!!8B5&X-E8 N0:/K>:V,9E#WZ%@"<QRL3$L]@P##S[Y
M7@,#-N(@J5K@>$\J1!ST]LY!(YC"@KZ(]7R0R]F< EJ0ASL8=K#42Y4!"3P?
M"ZTBC(*:?<-*]]^PG@+&8YY%],'$P1P$QW+AV3!RHIB8 B9IP45NC.%FLAQO
M$Z;)\6^MYST\'\VB/+0$$,DTKHUW,9/)F+ <'K4CRE$86&,C"2W (AO96A9Q
M*'*T,JL+ LM[$C'=(?_F9,+#>RC &T@V,@*,/'!FF)'F1#R R ES[\)?,;^-
MTS0%->$K, &>E_&"*1L8G3#R@\!_X5$.L$X*71C#AQ:"N--MPF\%?OPTQ8>=
MP+!C3OHRG.IWVB7\4&8>M,S<.0"7M/.?A<-:VELX!D<DX/+C2N("LMET6-:#
MBB5DXK;$1WGT1S$P>"F04"P99H;U0'BJ,%5;@&=,@I8?1T8R)7&^XI*0,5MX
MJ5'6L$6A)@ %-J+B)AA38SM!$D098AZ?P$0H?N,NY%<+)\K7D$D[S.X9SUZ>
M^<^R_@.E#_@>F3@I/V!DN929$TX9BY(L09FF28G#5CBE' +&[) RFD7^HLPZ
MQH5R9#([)1R>N<S#8B1J,3^9\IIE;C2LP$TR$->B>VX%D21,L0?P$)[UBQ]\
MHW@2:^Y$ELOW@D="C)@+@!57%T;/\:!!/-J N>S9$DG@^9%AG4^!-3->P<G]
MXS]_&K9;@Y^;S:;X4_CZR#$F-]V=)9=\>1,18/(PN4_WX6%2R.GY#E!%"!UM
MHHQCXJ<F_7-*(0D4==(H"DI(W1;BOTI$*>BSKSX<1<V3U_$IU4!-#3^W9A^G
M>*:;?=OZ3$_Q3#6=GM^9*D&GQ[S C^Z"RASYBCOJW+QO>M/UINM-UYM^.4&+
MMT]/ 7M"JSQ, !,99]S2+0RN*FS<#SKZM_4E*#.VXF:M2VQ=:R*RGR:'\"N>
MP2T=P0=Q B7T&!BTS<Y-:_<PBDO@0B>#J+6=NM<U#JH#4>VA.>ST-*).$5'#
MM8VB-_IX*D94ZZ9C=H?;V]LJ<+ :4BN0*FY-LJ'I3AV0ZC7-F\$>(?<JRH&U
M=;'\D#J^&4.?N*-EOSUOZIV349;K,WP6$1D/D^04J#A]"30P'&[O+:7 F6HT
MK:!IYYR3&M'4;>\1C*W1I Z:AGNW+:H!36VSV]8ZQ$GBZ69M.]MM718KQ-.@
MJ]Y==U#/1-TG:[O/;8V3\[ ^6<-]W7Q*]LGZ<<BN;8@EVEX5-<2R0<=J7FUX
MM^I0_27-A8J?9BM<)N'JHH42U=I;CE,.(_@/#XO&2. Y"T2; 3_@72I%"4[>
M9LGAD=YI('RN&OJ?;"Q:,?$H=UD7$,.3<WUGTH*V(K+8CRPW:6R3Q#RS[Q@;
M37/F3R2KD^E,I@S23R.-:2\P;#L)[^;V_6?+Y>U5LG'<:8>_3'"]#%8V<1DN
M$W';,+#A>_!52F-XPA!J&,J@MC)I'?A,3YJDQ&B:<Y4M&,_;4BUX6H(3\NY5
M6/14!J?+>HB!38':#DL:<F(P>])V*EN+]QC\L\I^<)$__M:@%#&*_ <0T[)4
MR ':/V \;09G!8P6E5W3PQS_306JD3L[S^RS:WFB:V9MS3)IPWD6SC@S.<3G
MC%EA3)D(D: JC/1')F+P%WQ/%NL,4F*C?!3L\LH[)(396M96F' F8#I D$!;
MSR*W(<#6MB%(*DDV!$]8-&$UO/5M"(NS1('+"7.PI*EH2&7QKK*4GI1IHB+6
M]<QX >EQ %\/',N4],U[-LD9<5+'# Z'R-/&;"/,E_1'O G55.Q#MDV+_":O
MA#IBL&F1)- _Y$:$>/XAYT1A!*CB;!AVGO?LHC_Y<\Z%@>+9;.[Z"X;,#D8!
MSA/ G]AW-HXI*<F?3&![\&?X-N<>F *#3(?2$QT)*%&K%>]7ZH85!]CW-#SQ
M JCOXH"W)\0SP<!X7L29-WS]WMA:TIG.7S86Q(LC\+\3LN#\-Y427UNS8)O1
MZP'3-S\!M*QP^IZC[3 =H)?H "!D-*]7JQ(8( *YE'.UI89XL<EE!UY6S5I:
M&]:2K[=M(AGQ_G3AE)-.$?L21"U)\9YS*GS$"@0UKT4. "?@/>O6@ZA[((@Z
M:[7);;:NJD"TJDCN"J)VL:5E!\VXJK5TJ@81=064]Q)//^67QXN5]'#$#%K*
MP*16BB V4A]XRJVTL?M[2&GKS\F[23UZ3/BC9$?D;J 6V;P+ZEU6>/^:$]X?
M$N$=A:=KDI*6I<.SR0Z_@[,R>0XEB@H@<. VF.*.2^Y5?$ )<?%@%HL+!;$0
M__,^7>BQ6@?C?E-K]*6-YU7L ; !-=#%=%Y\ K \LKQO/)EXZCQ-@1^Z#KQF
M4ZIM$'/PDJB6- P%NH<[G10>DB"QQO*,YSPE;4-A'%#E0<-?Z@F"H]&JL':^
M#P(DSZS%9A"QMX2+;;TVE\K%%/?:)'_N[YE/XQ;]PI-_#^-BW82+]:[>=OK7
MJX[<75ERLU>X@J5V)^6O('^9#S=<*MBN<(:=GW-="U^HW3(UNOGP[OX.H4*:
MA^O,G(@2UG<HN;'4F$,PPMN(<^U\]0RZOM%^AY.CS@L(F$V7W>[8P-U\Q[%X
M[]U^]#VV^&@%WU@D2IN4L,6]ZX+6*Q(C>3U#4J6%%,460&LXE23/?\JP)@&W
M<1 I6=Q& IN$UY9LE.?'$;9NH;[@])C-1I$I>TZZH2],-ZSP %<K%O J#4)=
M='W+2\L[T-&,\2<1MZ'X#O6/^"M&^U.BA?')<JO/-"%^7J,@;38!(]#7@7MX
M8V=NN7(JCYBM+E/VX8]I99:0H8Q(@ISHP)'/[(?Q5\&( "8#KS-Q1*,QOO/%
MK+.@J<V*6>=\+FYA(:.](-'/2(O[A$K<U3N7HUN^JQ^QN 9<UK2LU=)%]1IS
M;E=+K<C"%=)&' EK[K/OC)GL+$X',[,6P(*M(#7U+I?<<*G[BBBSPDNTR!HC
M:8/PK%?HG$!\BPU7B L@2Q0=D7[SPU 1!._=,86NJ@P= HBW@#G9@@]^\,Z/
M1]$D=N53]0(=Y#MI#<3&\U;N;,;\;%PZF]12F9H/<P^8Z1/<HY!K^$IMPD"D
MP$8Z\CU9O8:DBL0H;_PO$$E!H.5MG,CIDIL'E5@B5PCJ@#.LL/)'8DJ4SS*T
MHDIOS(0V)*UF)XF4#*4!^BQ84M]&%.O!\D92),Y*VV&,MW0H2@&Y+(KP@RBR
M\W%AI7!-.Y0;D5DE31&D!B?R\Q* ]-O >W3!9]<+6JT?BMY-#CS^[-@QZK\"
M*/1-Z5LC+U(<A#'+U (BAH-^)]G)%VL&+60?*-'>R$L$&'$YG[A-,]_427BH
MXQEJ/'^+TDGC*5;R":5/;Q/HL>9.6G+GV*5VFKV]P[#E];J9"7$NC$Q8U]A1
M*P'[#.JKZ'(J9X@H-<HSZ'8AIWZ^NEW(7K,4MD6JG\O@IYZPW7)/B@Y(W2\@
MM=C&NZ;_\R:E+96JR@A)52X@5:F1E453L5U[38/T"T:3BKELAOP_EPAOA3\C
M1%TQ>.(F#.%E5I0LSJG;Q,W!:NY_2[-/0E]HCOO",!*.A7?\,!]]S!Z G_]0
MQ$0^$UDG(2LR<@WHW#MQN41T_LT"W[;"Z:[ ;"B'2Q4%ZR7VCP6H89@%E4<7
M%MIYP)X=/PY=M!O3@:DJ;I\5K>V=@RB],72 #Q->("#\G)R>H#;[W,CJ0D>N
M'(*]YMYIBY<*P5,0[ 4W?PF<*&(8U3)1!,B[&?,4H*T2S(T[$-UA;8+$\?[!
M3_<!\%4QB14:*"^)_VK8YF"[MO#:YII&EPA;%?6 G($=4T45-:TO@;D#8+;]
M>.2RGRLQDVX;KB3BZ>X2&%R[ ;6]O0CF,CEU]"UP1K#LK+'K'Q>6V^WZ*J!2
MES(YA5(F-V=1RJ3*:+PU%4YX'9.""B<W5K,_L*J+V\7-N_<PGMP/'$4"IP]V
MVLB%+(Z4F9?92 KRI[HN28@_\'/>,AC+N&!\,%91 .B[SM\$5ZK7<&V@T9X7
M.\",',>##\2AS*Z?.$$8-1S/%'_"_IPS%DU]$83KNAB].YY2 +633H=B?-%6
M@0TN7SS#'P%9LX@ESRQXK1GYE[07,@:VIH':<0@$2W'$49CY\?(J>-]56J?H
M06MB^'#:C15?QU]?&_?>E 74K34_E@BW7MTA7A&'[PUN2SKI)%2;-C_]4"9Z
M?!)CC0IX?T;9O_#_B(VG'N@&3WB[BWT)@:&-F>S*.0>E*<9$"N/66Q@AG#?&
MGEN4<0'_=C")B8+8TVA@\7V, <]]WF;/S/7G/ 2<-Y^E>&HK]UEG-L?<'%'+
M(RGC@7-QL@CS;-%6/(S=E=)!^-NTIRIE8N'.B(ZW#!,\L4H&QG%;U%R7V6?8
MO_IS@%L2+6@[,'67]EX)+E?L_-NE**)8$]:F(?>>7-:1N%YNCYF<S$J6$Y*[
M*3+R.=TF24VB9(.=5A'!A&*8-1>AY\C.R(46A@QK4Q&L^5==9L$GL#83 )ER
M_# -DF=R\/0$8HPV]GD'2J#OI>P4$_]1FFBXP&<E(TWJWV39'@/QVW"=9Y:D
M2/+) %-(0CQX.LB?/K65!_F))9D@0-$P&?%WRM+F/7VQ!(^L< 7L;/E-_D'<
M*(^7MJ'Z7_3^2C0)+S8FVP^_RZXW*3V6+X@@F 5LQ7+9@YV*D_&J8<3C19?J
M>!9S1IO;[?3<X)O$$P,6.52B8[F!LRRY$,O%8[+I$W4N#RB18GD)O$I1$?N3
MS;*YT46>6:9U]ADRNU]]WZ:B1[AU]UX$UY&#U^8M;7^F%,6Q6=_!]6#E"JE$
MEUP?7]Z1F-\?(B,JX71/V4-PTD,0-"!8%+ PE,6(H629HLPMXS(+(GGJS&4;
M>$HR X+T)]$+T Z^A_OX9^QQ/DG?YC3$"W<)\GNV O07&B-D? S3D8AVJ1CA
M\OR0)BV0_B*J#I8M*N9DY4!8K>?/X%1I!==& KV )5W)>3&6,<I\@ORD:(JY
MWRA?/2=-U+/ERE#H [X-DA4E;J<S+-S09%OPUZYCC1R7EZW@/>YM7HV$UP_#
M^H?)XCC_6CTW> X3N<;9A$-8%;X%!X0V%?PI3[.G##],NW6I0DR&O0BA\]0+
M>_U^;7R%T[V]_2R3'$.X#"E)4.1)HC /\JH3T*4?X84.9YCL)A7(@/]YF'$(
M<'+H/GR9,H_AZ5,F,_UH[ 1P@6 ^(R &;KUO5/2-]!#7^<:HI@!\"8^05VM,
M!\V.A^F81)#^6-Z%MR')!\F]S>>R-&E1@>[9@:V9D"ID@S!.R:?P7N9AN&8Q
MCZ_=_/EKQ.;&_V6!3W]O_;QY 'R1Z)Y1<8??K^6^$CPG=-6Q[XZ8"2^+Q=84
M\UN"(]$]:516$"S2;%!0KB9\LS*?X$4A1/YB_GD3=C<[;2YD\(*!@LC@X$<I
MT8@!,A]:'2,_5Y$"&69F1.M](;4DK0!H9>AQ94+R;A>I\K";*34N+6F_J5P;
M_PMT=, EKR25&9F$CTS91-#3$(FB.&JT5#XUA\@E9F)%2_.@3?08\DDK6)@%
M1VZM'CBO;+AB(K ,VPE)?I)E1B:N_P+8LMP%D)Z9U(05I)S)4$[59;ILD'G.
MA9SW-:.;9G[!%\.+%*0($>(9'A*#&>!$4D%3RFJD>$_3!:22HL<+M\$%@9G/
M<C58FQ).YW8<Q52!EG\%A[8=4%X#+CYFAA2/R 4G7,%*]-XE+1ON,YAW2.L*
M,(]<JL,GR[JQUB56@1%,;2=1A+.^%/9;^;1@DYE2G,L$B%N/I"+8!GP,33D)
MYP T2:Z&6@C5QX$;M0#%)/RG%J0"MI-P1ZZ%T#+A^D\TAPS]2A;"X4/6GA&+
M7K 8P!+]\6HQ1>,L[^CIXX5(A,EBS#ZQADQ5'+S"*,^=7W"XZ# DG-B</,,E
M='"+&,<&-SQQ4Y,X)H$&%-@6<E.7X9-3MJ6% &4.M!XXLZ3R']XAR!5%O08F
MK&4Y>!>)CWG BUHIM[Q\ A7%PL(M5(^E:,TXO8*B5UB',A5@X5*E:@_K10JL
M&9NR<BSUP<L7YJ]C2T@^M-GY*II_Q2#@()FN*:U*]=E 3"7.Z,(>$6'RFA.I
M\C&SQH&?2/9D7J320/ 3:>(0Y9>6[(Q WWR="7.- N?IB=%AK6,=M!8II:6V
M'_BAT-GISUPPR+"9(JK'*:429R"F[?K>4V/=N5-U2-I;8/1B,Q]VK&E6/(ED
M OCI367+!CN7+9-:U8']*99*<:ZO87>&MI![#T1H9CQ:W]5P:O6*@W]W<FKA
M2F A1[)PO)/=!QR^I1%N*=D)<O5?> FY&<BI(,5F[M4P?[$F'HE4I"5AT/HN
MM4/.\.]XW=5$2)?:_I*2S\5>YEG\RH*O!"3#.I[!^%4CY[;@A;0RJD)VCN0P
MDO)'1$(3\$;&;02DJU')\T20%55=>"G9B&J28XEB>+/=; TE4S3BR'&EOH 2
M$'(-AV\8E2''R;6;-#=2JOW)!)8IO52P'')[\8V'^Y7J[F3=7$G!F2E5:Q1=
M';C%'>VF(;_(<.Y)$PG<)+Z;)KPRMO"2EW5]N!1L,\%\>46QY,80IEE</]4=
MH@KOW+*R7D\O&)??U(E0*-U[9+0/6".YPB,L")BY<<4MYRZDSOR248% T,,
M OB9\S0E6+G2[26JKN,//.SX2)5^$;D4G_=L.2YML[Q?D4!,8638LCBNPRPO
M,-'/TK6E @HW>">>O>6#E)/@)1;1Q VS20IG8B5%P"!*).B'31R4K(&# XK0
M(QH*[34AU\0!D%94%/=X8MM?LIYC*XQXA(<<<1=A*G?[Z"A!GPGL EQ)^$M.
M.-S3RZ@;"%;R1$,BE?7V)1G0D 7;E0(?C2 D$%!C#YOJ7>;8CHWV EY>V(['
MZ[=QA!A!9U1.)U]S7))*TT*4A;N741\R5D[:POPDT^8K"%"?X$+D540+R>+3
M%@6I&23QD>&281:6&RTR#I_01R>++&X9>[+V'WY>>GQ#7G\3#4IP='P?"A:W
ME^>G4%S0P58U!UNUFCK:ZJ!H*Q%351!M94TZHTZOVFBK]X)+&Y\!K"#FS&!J
MU(Y&"3'UX(XZ<EFP*EK-D:357T"('(LN+&Y,KBJYW\"_>-\7NIMR_7)(:"";
M$5HDX&8%%6O$@[723C%C?E9IEYBY3VU<X(K)_2I;EC$3TL"UVFOC<^%;9NJQ
M%BUA<,ALG-/Z]4@'HC#H<L&7OX_OH+@3>]ARA^7*\HMQ,UUN$O_<RE(!$Q0!
M3>R6C45I>%,X+KB8+ 1NW#,T=ZS9'2>DNRB.<G%M44"=C1;B(1F)P7?$F33$
M^/ ._Q5)&5AJVAF3Z'A^"NRCW!'J!Z4$;UC;8GIC*IU<"*WC>%YZ69R4R"Q!
M&R?N%(<4SL(A!I0JR"'<Q <*HIQD_XO8C7B9]USQ<WIOZKL@JX1"O:6HJ6C!
MNR3XY A+HSC%P"B@R6GC&F07$Q@:=>XH91RY(*LPC+FYC>MR,A1 ]K/*=U>9
M8[<S'CE(X3C8P@&=5OA?7N<6 W=XGX  51'4X/FJ\D1,4S;YNN76XE2$FS[_
MH)&4H9TR;^5L\ '^*NE0J*U:J_RZ\-QDOT0O$X80,/J8B$ @%RL,R-T%RR<%
MR[7((BM9[K7Q)?=Z&B4[7QHRS'TV:6I G>T;#G:YH?BO,^1;*-$X41J_=D="
M%J!UK$9X^4UG[[K<21>8=&G8#":[L*,%G!-I ?=Q/#2[ 24%HN"TB/4QL]8T
MZ:P%W?Y/H;&#*N/,X"G7>@F!!XGF/=@DDS&;8_XC-;PC*X$TS8CZU=*%D,A2
MJ3'%\;C%6G1(,<F5F'5S<Z89BKK102PZ6Z0A1MS$EC%]P*J6/!O9I>4<*-PT
M@UX4_!=W3-!,N9N:S$-B4 P.=<*QRRMD2UU9G#-Y+9)S7@@F2@ZI1/;(FL6>
M8E"=D]+79T777[@?[#9=[*]BL0H0=;-W<&NG3^PE7=/GP/=\M*/,TOY.FTF[
M0(D<=FZZ[4ZU2B0_#7=AW-H@OP/FCWPNU?&W3Q@WC;H8%M0TC0^W7W^1HD1F
MS5\3>_3O<W+,WG[]'5Z]IK<:S8%I4"];]D14_27Q/;QZ].< I/:P^?J-<9^-
MT@;>R!\C&I=OODM8!3!&VN!75SB4&$9$@KV^-C(_E-'?H?!Y<)N5^&"&]X@0
M&CX\\L)Y/ +H):S<0'6*O!YIXRW9,9EY4QX2GWX/.-D(TX.RF25RU"3@FU@E
MEV&?8M<*LE7]1>SC>.JP2<;U@0Y&C)-I8(Q>(*(RA=< [9".Z,G'%TL:&S6M
M)=E7C ]C3)S(>!4D!E%?-I&^RLXW-5Q3KR"7I1N,(KW /OD)).L5:B@JO4F<
M&/?="[<R]Y&O;?9SCV=BIS;;PH@A-&1G75E%$>A^4)!_8PK?=!+"4G1PF3Y9
M%")CH1B.,CC)DJBODTB=633OG<6C?1K<8\)X<I#8\>0BSMZ3+W@UOO!E\@YO
MJP -\>)&D3SQ$4VS736P15?TXA>]F E1R =KA,)3L\:SCMPA.4P*VGWAMRU9
M+Z+ 3QN*I3EOY'V3GT_=',ZRUS$U:4M!)WTQ06<2I<9U.XMGL0%OIX!721;"
M3<&[DO(1K32QX&19;NYVN5]AM/D;\CRNF 2(!5=,[AJYX=?(\CV1QAID[P?:
M&^.5"!9.[X,;R<,*HC&IOQKG\PO)$;+M;@"\3SSY3W:"2IB=]'V38 U@=T7Z
M#5$NAJ&&24)41A_-BND32LT1+Z/M "A%!GE2ES5TP.+4N <5.4:(UHIKXT,<
M(%<S.5/"I29KDBZI[+U$1A"<*OK8X[# TY?ZN'AL -YYH#E?\QYQ. #\)\_H
MD=G=<D;/[VWDTQ^08%O-QO_.AP$P;IQ=9D 8*X6.-$;W(.>T:!5!?AEA?B1>
M.L*?)WV>4Y8^".O*'#,B8]<;)&5+U[5FZ-0CMG57:8K7O>@(>N+GGC32Y8UR
M6C]GY#34\@(&*F2(YRU>D(^)^J9(?-;34T N?MCB#"T:K[[&HXB+>NUFH]M\
M74B=.*5EZA1.>][@B8@A(X9Q>B(ST%-@>2A! =+\" /BEB$OXIU!00Y):>"F
M)4SAD1W;K'D29)>TQLZ$P CR2+!B)DVD9$*"['#\:Z;#\6VNP[%,59 "8*[W
MXO+-FR<P(46E<3ORNDW[!RS=ZZT>D57?E*D[) 3L_X'!-KI,7>=$<$B?"PIY
M240=%!*ROA'.:C.$&ZUL !T\3R79'"S!K;T\YKCH\#/3RS,/3-E(YH 2L'"@
MB(B=U;#Y0I%R8Y=*[92OVRG?TD[Y@YSRB>M][1-5VU7N,?P7& R7! INK%ZC
MV>,WUH>$"N\S/?WD?91K12E-#)UV__4;XR/7A247R3^)7#9I&)K6>$K,Z-2Q
M]5:$[M%1\BM*W$.A-!CPBP-O*&*;%CR  ;]8@ (YC^V(<ANB&@7G,%8( J$<
M+8SGB3XGLVHHD$@FT@DSK4P>'Z\T<;PV;C$:7UZ5:'BFQ((UL^'\F#(V!7.6
M^E4F^-Q*[M%\^U\R^ C6*E(.I+@'6VUQ][GK3)+,#9ZN8;S/WR=.F!7U'BG!
M#"1%.JMUM^&N5U@O?P?*UX2]A'?!7G?!7A,HT,3_Y"Y,0^9_40$8M.9G3-%2
M$"9MOD']VC-F#_SF1RL Q B!MY^YFL@1Q_<<0_I$4)WTW0FY5=R3,OI3WHRY
MJ+$BJ39W1V:OQI.7<S,< S?JP6/&+\Z3\0NSXLC!FA&_X%G=PN:]>OCEEU]N
M7U-Z -JX>%J"CYX7H=>X *+0%5Q/1G3(JC+"[/ [9K/87%9.-2=4F> [V72W
MO)MGPC4TO"0#,JXE]B#IFK5$Q1N"Z!P]O8#TQ)^Q%T)8;B6[8B3UF>0%EF.(
M,.O<#.V]JPE+-\-7X*@N+=1R16G0K\B\,DK*'BZ&WJ1MW[0J=#&(5FJ?4)1M
M&TEK-7'#R5\;V549LN(IK0LNQL2RD._,=K+4+BUC1^B27M$(N3;PW#"=[5-.
M66,\@Y>3==H.-VEGV\=VME)%??UF%U?=P86/OF)6;NRRAXF4DA"?X6^^Y:%#
M7@AEWE-Z2+K_K.XFN7\WR>)VLT=H4EKYD*]BSXIME"A>J]H^4P/ZQX\Y:^BN
M']2Z,^M>L]Q\*:M5IUOU7IJ]3GNO4O K];5_#?PPO.-*3RG=_<QF:S4/6\$#
MU5!:@5)KK[:LE4.I;[8Q TPQ**G8NNGJ;5),GRQD.4.E6E1P4>UO7FT@M@I:
M>)1'>P6=/(R].N/LP^->:W0JA\YUG3Q^H$-W>>A<;>A1.3A5E*27&O9)L3HL
MEJM-=+DK?1><1Q.<Y>R;S8P]8V[]Q*(2A:>.>7-S&HUO-!*K0F)O'R9>&1)!
MC&]V3@*).[5@.E-?"%T//)ML?6FW?JM8:NWD(459T7(X'LYQ+[R])37X:EZ]
M[9B]]L!L-E<U1+Z5/)9B.0*V<^(.^2-V,ZHN<UU6&,IT?MFCH9!9T#VHD30/
M:HA*"VO\>1ARPYU^X4ZNO8,+^Z>NO:2'D^"QC]J/I]T>VH^G_7@:T-J/=SI^
MO"7KPQ?KQ?@HLH 4,SFK[W@9[F,R2.0'V/)DQV\]FT+50'@JP\"F/7BG":3B
MRMMK-/X:@-1N;F\)KAUX*\ST#S_XAOD+G[%*3:@J.SVV*Z1,RNDV#V+!>%#W
MGCBF,HQEO9YR]'*A(]? K6\.XM:E8ZY]XD$6QQ%X/V#2\939U!E0L^@:6'2Q
M.V,;BY;G1,=43H1;9[#=LW91AW_6L"OVYV[CTJ7#;@"PV^Y&4YI1'T>8_L)"
M%CPS10"K XWRU+57S&E"7?\M.V*(PRU%5]VNJNJ0MS-&XEZ!].>&1!4%[JNL
MIUN'K]43--3=*RXY(8-/K*3LD=[PYB1BA30 JP+@7J''90-P8/9WD+)5 .!Y
M!ZMAG-.O28-QSS;NTP:G/*+L#$*?-B_P\.H$J__>&-34/[AS9S:H2<Z>3_[6
ML^7J-L8W%93^Z++.I-/1D4^G&BC2KS/RB;<QWC4Z2$<"G<P!K]3.5N%@=Z]Y
M>#Y(R@2 [6]>38^U<L!0]K$*(%'\S*[^J?=$X_CTS^PH.-87@+J$<V<%P0+D
M>DT[)W5LM^-Q/(NI<*H^N9,Z.4UP)WELBA'<)5ZI56KGM>3IW,XPBU?5=!E]
MPJ6<,$SL[X+RQOJ<S^R<-26?^PDK3\D[-K"I)LJ$UU1(O&\6][YAKXU,?P$K
MLXMO4M_C\6,!EGSU&TTFYQD&H3==;[K>=+WI-=U(RF0@R0 +%;;KA)*D>QL#
MS/XM8EO^+7?W([FAER-?,+TC8K\YS\Q>#GTA!TXI2?CJY>5=Z,@U9!EM+ 'Q
MXZ#,&/VR^D >IG^SP+>M<+HK0AL:GR?) #>&>&L&>#( .RL&N+%TB6: )YR/
MN<["<@K6%65)[MR6>XDCZR,^^Y'U$9_]R)=TQ"=@%;N+0Q ^J;@Y[\\<3IVY
MJO5YE%41-[8.2*1QN==?LEM]-'WQIME73AY7:N3CHFU3[86-E=!*AMM.FN ^
M (1%PI^V(7&E1=&I%PY1!%8;F-C&3CR:B6DF5BH3ZVTL(:J9V(_5G#E.[;#;
M\5^Q$S 8TI]$+U:@6!4Q18AB TWL9M6]\V?S.&+!5['+2V@_&C-N=[J:&:N+
MNTW,>&-=N<J 5P-;+L*DEBUK9VR[^>LU8].,K63&MK%,H69LV^3-LZV8E123
M<K!]7A0XHY@74(K\I>)1 9O#"?+B2NQIQKPH7%M0RLC7CQ+5FJP$E+IBDTY#
MT;WJ=*^Z"P2T[E5W,B["J[<?X!)RG0A[RWZT/.N)X;5'$HH60/=3?#:[:K#U
M\[_3S?[*Y8MB<5-*+&4I-?VN>OT1E!I954PM%R!=TFDTIDXAQO/K(HS8+,0Z
MMNPIX!J">OSUHKH=;*"XS>91HCA^H)GC_,J"9V=<,P&V.MM[+6ULAG!!C%Z#
MFX-[LXE,@_M,9/I'/[(42WX]RXX,_>*$V34UX<NFD5VRP%3HQZ#A5Q7\BM,5
MUS0$N53XK75N9$WVQW!W;/8)5.4#2*R-\]$T2.>S1ZVA)7"/7+CH,@*+\?C^
M?QX;]Y_>O?_TR+>AR&#7:N\T9N8<YM83:XP"9GUK6!/XR!O#<E^L17CU=I?K
M6'P-\^<L8QH@NG]Z?+B#NY).P9\8=TA)'K9/L=Z*1+NU\*D>'&M=2KU)V[YI
M%;4'&0P[P]:P @.OF-T?S C8V'_R@"1M(-A<;J+!OL^9%S*>7 "_CWS#64EL
M=#SRN$5P *PQ@TE/#1].R_DN_C('VO/MT&">#9_(M[* !\7K8W\VMP(Z-_D"
MG!]R/A@'4.$:KN\]-5QTUQ9,8DUVI?'" F9,8M==R)\S^YH?B5&E?[*>GD&?
M Q\V*UI02YWW?\7.'*7Y,^@5E%L8DPO;J4?0(._2E817W MHR3"P>R\@.<'/
MKN5%MYZ=;/X>K7^:H]&PU=:.Y/K];C\UZ9]3\K^]#^%=8L*_APP8FH&!*[IS
MPIEX5P]K\*1=ZB=]Z/LU?5+2R5W]Q7$$6VXM('BU8%80OE9DS4?<[0NMN*@W
M775?<GV6_<"R6:KEJ+!1M;'!=:I9K]_;537C+B[:Q$0+XPXM_IM?Z+[/N[CP
M%^MUN$36YJ+V;\Z$Y6RKC9"-W]AQ@"S\ZFUOV<Q(RF?KY_5+&^RY-'\NUB/C
MW7]C5LBFOFO?S^:!_TSA76%U*VPU5RRI:F!4G9%5#38:;/1F'4(Z6RT@9?DB
M>F9?ET149>0:D%H<QY +TE$4J8.^#IO;;9;)Q64XF9M+%8P?6>+I[R<69"%_
M+,F@O:_L,]QSD>LI/I&*M,1SYB/7</<4%P!;3C/=@;BJO'.ZR9W3!<J[,6^:
M-\I=.Q<Z<@T0W1@7I I$\VGW9J<]5 ZA:MJ /L0![&D<,/)X3V#/X<]:,.(R
MPY[VDF0O =0?^$X>U1[46"_R#7=>F23P@L6%M8E% RT5*3-R#5=.<3FK'T9D
M?1?08'O"P45AYJS16ES_<EE 4@JM.8F^U57/VJFF%4F6^\E$!J+4I'C5PA,D
MMB,8P6[VD_4D%!)J!,J45:"JDX,Z6@[2.9F;[J+BLA$'(K<^CUMO>YT\%1(T
M-=+507IQ9<B<UTY!I+?-S@X^.Q6PKJ:YZL[WPBB(!1H\ PYLS$)5[%5:\EHO
M>7WZYZTB>W7TD34+Y^;5XNHH2\)*2N_WGJ#VVGAW$Y1CL]O?[NU2@6%K9*N#
M[.)*6TO"R3&1O51^RQPT6R<!\D/M0N=);LI0U7E&[5_HR-6;S(<;6Z/7SOXZ
M W,XU"$MBHQ< _PVMEVL'7ZMMMF^Z2D'/S4- +^!E&18:9L$V-5Y !M+53<4
M0;"RM'-NRSWZR!>E[VQHES+8J,HO<]1,EY-W&>J%/[L,_P!,-MO]9"T#+L4>
MV_]1S>=$>S]IZ KH;M35%89N!Y3V'W2;G4DWR75EFTQX6I6L9BT3G/U&%[.M
M\Z@..MRK..U:MO>)E<+Y>F9[N#W 7X5ZH1J050%R8]9NS8 <FKV;_:5(I>K7
MGD5SOJQ(AI4:Y\75'/%ON6*=\*A;F""<"^\T(JR$SFSC'VMAV6^M3:SH;BGL
M^!!-69!=P)(H>:@#<]CMFLWF:H0O+6W32HH39KN9E73K74FK-2A>"7QNI1+L
MIN*ON'*<OFD$+)PS^,HS<Q?7A@+PV;GX3&V;;C9[!P*H.**VFUE+W0 :#C<#
M:+?:P6O@<]J%;Q]S16UY85@X@)!@[& ,#PLC8VS-'0 QU6RVPC4$8N*O<#ME
M]6:;C2+C!7X8A[R6\\3Q+&_,#,O %JF"A*@8,_\^K_]L4[H$;YKZC]7:ND<L
MFZT+Z)Y' =U^'=4V'^E6^HAL)33>9_E)6G93_-?4977/Z^R_.M^-TSGY8Y9;
M/6>HU5+4=[4#LV8?9W"FFVLSZS,]Q3/5='I^9ZH$G:H9LG.741JE)JF6A5SY
M:JHWS4/-BO=BP^_\, HS)U%&W%I35[DX3305=Q_:P;2[&YK^9H%O6^%T5R U
M-(Q.$4;#G8M(U<B4VFWUBIDH-;*R:#K877 I3&G'WJ,GZX+ QH+D^C%NJ;?B
M&;03Y,OAK2)-@(;7&,=!@$Y$)Z3.DX$3%C45M&8@J4=K71]KVPJV#^7(7\=3
M9L<N>YC0E/D!4#?3=7T%M?.C=LWXA#1BZ3'-:\5',*Y4/J3NF7<1@#Z#GGG'
MM &]8W,_=)3IN' J0O'-7E&.<I/Y[5U*=DQ+EWH_4>3L%;!](<A1,WF%*PE9
MY2!1&%1+7[FHI+$-Q+6Q;4>N\"<=[B??N^-'RPFLG*CSMMGMZ=)$&KK[07=C
M.X_ZH-L?[)_ HWS!H=K$Z5\LEP?01ABAC/8CK ^L-,&=1]K1S<;6!(6![()N
M?$_<[B603]?L]77^VV4#<6/7@?J .!AN#P)0 8CGG?B&KI/;\9@[#3Y;"[+,
M8U(&_#"(F6V\QX2*D)V#3R59YSRS3DNLDXEU(FV$3A@5.5?0J2(<*CG7"I]Z
M]M^;G2V='W>VR+6((\,\)[Z0WQQKY+A.Y##MA=%&ZQ_UPO"\M2H]%66OX' T
MU#"3<X.)]FW\T"R7+R2UI%_U+=4;>Y84%&#*WIAWI8FR_1NS/=Q>Q$&!@]00
M6H'0QF8@M4&HTS&[.]0!4=J$59O7XW9)8E<4\L<V"I=()OWFOE4:ES21\BCE
MQNP/MM>NNZCC/VO@[5MCL4S@Y7M=#LQALZT<\M04;+%_%O!FBBLVC1'SV,01
M16UD:8_(^JY9=QT4M%<XQ_O9W/47C'WAIU0)"V^;_59?.4*ZT)%K .!>D6AU
M +!E#A24(=04MD4>@M(BMP[0X(2V4VQ1WK%7H:3>[>H0(XW@_1"\4XA1;0AN
M#W3#U4-G:<C_<T??(U:PQ&MDNP-6:<H\BQ"0?G.O6*1=7,WE$=VP;39WR,16
M(3)$X[,J?.X5HE0O/GL=L],]#7R>?^32;[[WU'ADP<QXQT;1&80HT8(B7!"5
MOBTO%JF6FK>%T4Z#@XM]I-%.>+HZFDE',^EH)AW-I*.9E%3XKM[^X@>!_P)W
MU01&#XU7(\O[9K@^'D'(F/')CX (7ZLE/JL>H-)O[A7CQ(\ KJOP=P\NP%]C
M*[#@76;?>\\LC+#&_NU3P'B/B3(L),W"M@@*GJ]&U@JR]@I]JAM90[/?5Z](
MI)H^FG=LPD"]%>TRG#",*<5OC%7-U"**B[)SKV\=VF\=VO4VV\Q&'OL'WA.%
MBMB5X;<I2 TW]C)[Z[ZVIPW.0_O:5@/.7!16M^!2J!R<*HK;2_Z5O-TH5S!0
MZ1O@/.S5K;UBK/"LT&:)1JU2<VI;-V:O>QK=)#44JX+B7M%6E4%Q:+9WT M5
M0.).3I)CU,K=;-"NRH"=&/7FHVF0SF?S-7BU@:Q&+ER1&5'%>'S_/X^-^T_O
MWG]ZY-M09))K=78:,W,.<^N)-48!L[XUK E\Y(UAN2_6(KQZNXOZ)KZ&_B/+
MF :([Y\>'^ZNWI+7 ;TO=TA4'BI4UEOA:%H+GUJ<+<4-!@?#SK UK,!:*G/H
ME]J7VAMT3V/$GBR8FT>NJ[]B*X!S*6R,Z?-WO# *8L[1L.EC&(_"R()56JZ[
MH*+'+HO8-=\&XP\F>ZENZ8PZ.-3_)&78KQ%(M[>>_9L/_.W>@XFP1^N[*(SP
M"P]N/[C);G%?4>'N2W:7][U$OQ_?V<A/6VN*P!G#C@/JP+EQK[NF\>)$4V"H
ML+WC:;X=K3BI>>#X =4%$MU,KU?<B<=@B.L<C.V#:U=GK[_UGL6J_-?"M\#M
MXD;#R#NSC6JK$2]-0FYS#4/>>\9':R&QB+U>X5WT<,<!_/G9=Y\1Q:[C$=L=
M _J=R'B%N$0G=[OY\[J'Z->MGU]S@'^-PQ HX!=T0KP2;_Z&]! DS\WC -E5
MA-1D&;_$(7PN#.$<@&DEQDSC%56_@0^%S'YM@&['^_;2(GJ<IJX-;(+KCV"9
M1 TA4#P,)%K9KEG2"U"O$3*0N6#QH\42MX-_X;.X*4G47,#&S'G&*^;:>(!?
MO$Q]?-1_\> +^+IC.U;@P&G\Z0-W<'EWW9"!6$G??$J,MO3=_>9[C0P7-4S@
M1)2_LVEMP$M6G&DP7>;A@=,=CVV "33B#2O9[Y73LX$> V>$N\1<_T7R?]AR
MV$#:16!FH\0^#6N+<"-1Z,&)Y"<JAIN '.4ZV'\8NW(OC#EN6):#RC;.HI,Q
MLT^\2_-#P8F8V=. ]?OB2.[X'F5(($-]R[]<3W78KAEPM=37/*+M_97YP1.+
M +JF 9P7+GM@O?P2@CE13W0[AZ*V !%\%!0#N+C@L:GUC&?_8LS@\QS34V;9
MXO+CZ68XV,SZTP_PL 5!8>MICOL,EE97C;-V 'S4Y-O:)&*T-\:K_1MK(OZ;
M?S[Y^D=:5JYJXF] 0P\3_MP'@<^/CN?,XMEOSE\Q$'>TP); (7:+/TQ'ZR4Z
M6A^==]<%D@<H4"ZNCHQ)Z+U-:,5,-M2?TP;0OH!R@7^Q7$ 0$!>N#?Z<O!WB
MIL=S/+?U&SCL%9L<Q;6]PP;*&_V.^K3\\-;T-NU,EAJ0-P<V;0:SL.FX) ?3
MH#[DP$WXI6-8<\23Y4K(_3Z'E\:N'PHV54"=ZR2>?KNWJ\2S*_:6GGA'+)=.
M^>HM4-I(NO;_,;P>R(T0DN0_8+.2O2&Y%7DJM2&!_:7JT,1>@(0"[/0>9)KY
M-48@9!);AG/#: ^T(P=II+AI_*-SW4V^'C!G-H)+F_>"CSEE%G9^![;][/AQ
M"+<>\B!X@>::H7XQ* ?U/YK7G604?('N- 2_/"'A3,O;!>19WO-;)J)^W3,X
MF*FX/XJ4'>*ZR8;RVVEF 9W#*!M(I-M==^;;&OE]#OPQW/DAOD$Y$RA>ED D
MK=;U:GY$%@G6L^6XI#]31(AIC/"LY0T;\90 #I1T/S;RB>Y:X&_;A"]L;BWH
M"A*-:K*R?]7,5.+D,Y WYD$C=PP)!S/+9BDU^![@5<X3X>3'3U- CRLES9[\
M$ESGV1^;M*,<L+Z'9D2^E1;L/$F37,NCK4_X.E&$1:JE"Z(/*)! ?'AN_V6!
M5A>(CW>:1"&$ZNSL\'R1I7V'[8@8_&;3L1VL@J\<V\''!;IVMS,HUK9'#%#I
M"49\&S_%H%4O;?AMF&XQ,JT0=P[^1HPD4<6!L3 S@VXQ>=AJ$.<G;CR.8MSC
M":R?)#@\(_HOG04R+:"8E2_FQ!2:@1-F-8?-LLG&,(\?D4U$3'T2&7)GH74R
M6MQ+.:#JBY@N#7'%@.3GBEL&H,H60%G!-U#;Q$7"-UC6'H#S\TA5D'E(> PH
M OJS.6@#_$Y #0SOJSF=(-UJL.V>'R%O!Y&;<0TKBBP,4X9/\->X=#H#Y7!$
MG)U$4SIPO'Q6Y=Y4$X&7<^+K*'9<NHAP[J#4&"'(\\[$&5LTLFW-K(29"HE9
MOI)>3 )&/,F*Q&^+,(6+@"'A4'"1*+'Y1DO<75\?/GPQYB[<KQM@M='/L(?$
MA@1]3X8_?$9.^ M,\;U4M8%MHF'8>F(9V'P&]&=QTTY@TVA?O>T4X.8_3%22
M_X1O<M:X87'%_KP]:>:#Z_M!=D&PCEO<<1[/OF$MG=Q:NM>]U;4@\_&#G# )
M? %4?< J-\M:L0OR4\)(7OS8E<EV&1@DAX\H\I!<78&/+>>_,55SURUZQZ=Y
MT";E#[Q==.!R>TY;=2]43D'9<F-43L=P6<%GX+JV)A,'V2T:I\; =CP+[VD4
MD>5=$06@D/'-";FH#APM6LR9*;Z'[ 1ET4C(HR"=_$4WULCWO\GZ+:CQA*:0
M<$$O$;9I! [PX@!O1)-;ZQWR!1#K=:T7>(>^S2@B!,=WO# .\"\KOY%]3'"O
M4JF#YHQU8SBK!5[LC!D716P0>D+&"2"\-NX!X&[H%VV3QYZ6]RA=O"-\H'P6
M/A4_<#ST;3 ;C8,P408,/ A-<E>@1TM8T$@WQOV=(.].ED _=QV&&^YQ<Q[]
MG)L,ETR-=.W 5H(:!!.U_7$LC":9I616PA>[1.YR)7++Q*]@PA.0+0 &2.QP
M=G@U&SY: 4,6/#,IDZ:;@LI]$M$I1[>ECV"WF>.$8)/@DV-^P6%,>!#/(_AK
M.K$_8_MI::XH4P8(*7FPXZGE/;',$_@U\4,\J1</'ILZ\^2)A/;7*M$["Z4[
M"TED:7UB7Q 2.17Z0T(BZ?X*91C56#@1277 EUWQ&8.,5+#2$!?E>.GF)^=B
MXMH]>-O'<X7=,#K7@][W1'7XRN:1L"H([?-GHTU/<!$4+;(P^,IC_9]I?X&I
M-K\;Y$XE 4@(1MS7A[!QQIR,]IDNW#THK41&Z[K=^[Y.I?Y#F'8=;X65H&"6
M;B-\+J=>G[B=]I;H><E@@"M>4J:Y\7/$X #MP'KQI*5[DY%M9S_9'N);5HV^
MY4"X)97^(;7"5VZK1)T(>/X$->HX<K"',P?>LG5.Z-P+86\0ADD@FXP9<],.
M%@L]!^Q:@3KU15J!5A2JJO4HV(+$LB:M:ID-R?GER0Z6J!>TXT2GD73!P,;[
M\)G,^\+XDZC/7!(E[:B1>O#C4.HR2"SS "X<9YX:B!+3<^ \Y0P6<BYK\E[K
M3W=>ZZ8^N.K_;ZC< =1^ P&$L7=.B$9)0/,ZE[4A///,OHUD6,B8M8;CFIS9
MW8:!4\;SO T"O*)G/'*F!N]R]1SZ#^%X2NW(I'QSLB$#,\CA8U[;!&7:)^YK
MDHH^NF?A4AN!;&E\P<!A^/?XF[0&X$NK-@+XWPO#.T!8O%E HD)BG>#N8#$-
MFEQJ4J:?<ND.;Y:UXE"_O]_M\ L%)Q9(00]R7PBV"5>CO^%-D>-F#5!-WMAQ
M@,$F5V]OELD5V<KZ&>\IP#WZ\W*GVVJM3I@L*"#=%][CJ<\R6O*[>@MQ4%9*
M,#P4SYDXZ"L/A:46I2!Z\L3EG#]0EN?A!"#D3>@.SBS="4D0IAV)R&8.]P$C
M:1K ODQY%@F*>06%OTP!LPU_THCQ2T*IE,TR^2-N6B6$*VO+/\U%TYM2C4O5
M/[2[B:YJX921;B=Y!'/9&'^/J^.&2%+-X#U0@.#<$0BH4#]Y*+*$4[@,>12_
M6-@K'W:' K%\I.\P?"WEO-R(-" IB7) "F&PQM\LKA[-Z<X?"R^9[9!*QRV5
MUAR$:T8ZB!B43)T@=,]0#<:+>L*U"[S4A>>7+E[CEP4?+XF9V#P@X=]V2&\'
MI' /1<#P5$*<#>.E!H$4V'<GY!XZH";\$C]BGW:=6!^?JIDY:4DL(HJ 9)CL
MIR14B"L[&&4#<PG0&,@CZM:\<'TD*>*RHW^[.OKWL.C?BL6\+ZOLE"AJ21;*
M\]2 I3P.6:4([>&1IA1=93Q;;DS[/(E130/-A,)>Q-=2G^.S"%)+A1HCPZNX
M#8E8TQ]DV8 G';0=@!+%C=HBK):_+KTY/,S')O9B>?BC4>9RLHEMX7J1ZV=C
M7)*0,_[MW,(<CTL->#JIYBZ"GU;FBXPPO0TW;8S<BFN2L*5<AQJM- ]R#DW\
M'(Z/>GP&:=Q>9OD4CN?058M,&%2U$499"]F2+@%4[M!SR;ZS8.S@<*3;B2'D
M'&3\,7+0-0='8R00P#T!? 86H8E"!V'SG,+S%4$FSU;@T!:ZN2$S'Y6QRSSN
M O[&KS>^WV&4" EXC=O7QG\7?] )R=P4."&ON81'A=-%3&8LU*_N;C]BB$^
MP(\6W"A-E)#\*+%M2P45G8N^)RVV^6&)AH2Q.06.$W*)'TL^A6G!IWZ^X-.1
MRSOUU\:E[*368F*HKNRD5F6GGYKT3TFE>_IUE.[!N$AF?"3ERWB/05?56AO6
MEIBJ>=A=:UG5G]:I(?V#1_O5^:X!?6Q [ZZ!G#L%G5 =-Q0Y5"W=IL^WE/-5
MMC2?/E]-O_I\3Y=^=S1S5M1L9\F,AH:+-XH435DJ:I)!S$IQPC.M%Z,W76^Z
MWG2]Z37=-\K4EBNZE538NA.JM=M=&WJY+6\Q'YZ"UO(RFBCOT-A*@=/4.%K!
M47$,83>#HVZ-.&IW=!_7D\11IW6HTZX2'+7,F[YZ#5F5&EE9)!7?;-T,DNKD
M2-V>+AI_@(BW% VAGH1W4;6Y-]S_!Q<!D2=<ZO7?;)]$?U0-8'4 7)QEL(,
M6P6 6ZWM4H<&L 9P%L '2\Y5 +C3U@#6 -X/P,4EM'80V"L1(=K;Y745 *RB
MF59V55\.OE=>>C^/3@O=FWUE<<HWI#.KR(K2&JQ6"E*QYX+&9$68[!5+)QO$
MZXHQV>F=1A<0C<BJ$-G<5UZN&)%MLST<:DQ>-";WMEE7C,G^<'\U[FB]D@ZP
M9)\G;2BC-YYG9,R%CJR/^.Q'UD=\]B-?TA&K:1O#3B#&W')L7I=KJ620"ONF
M,D#+L(\-RXEY_"R*2)01'=+>;HVX*!2<-?Z*R\/M'2M9(OY:.EY2E9%KB(P[
MN-YG9?CK]S3^%!FY!OP5QXKM'9E9(O[:_>W^*:6EUYJB,Z_>?L*?%A1;H[)/
MK9^U/'L$>CK,W[M47Q:'>9C\'C+J*KM$5'^SP+>I@^%N]-10CIHN=.0:I-EB
M/]HVSZY&WP6,7 /OV[N!GT;?I8Q< _J*+4G;_+67A;["4L3UUZVNL <:+X1*
M!=1Y==PP5RTU8$]68,M:Y**5X_\3KO9IL+*E^=]4/_==BJCNW- YA_"OV'DR
M=MG#)(_U^W1;=&U57:9)E^'2YWLV9;B.Z5/\@Z:!_3QDR[N"-CO21L.7M'+[
MO.(=8EXK(KV=C=Q8T.!QK<%F#Z5%'KGH;;?:'^A=C$WM/U/9^4V]@IHKO8(4
M.(-+'+ERW'76FFKV4%?*PEWJ\5$%=FH:W%=8N^V$O',\-??8R-,5 ?;9D%21
M"6 I;SS?>7.S VN)E-Z)@Q7-QE$LVKG+^![%1?8)B_\/!<[PK-'3*T3/3N[/
M$M&SA_/S /2<MP'HP\;&4'!CL("WZ<.6.ZZ;%K-9LO?P5HR\9^T)--?9N2GG
M,HA3TQ#?N8]\X[Y0ZRKITO_@!WFPA]I<I,T)!YH3/CC(ZFIN%_)_0,C5-HR#
MZWYQ$Y\24L"/W(!U%KSK=?:11'G+[CR3_4TT1UQ(-OPN9I_@<X\OS'UFO.5/
M*>4 ABWURKRJJ/VM$D5?4:(X)Z&\UZV"D/!">'SQRRA=8/;[V^O;*4T_1[M4
M!HJ@^*SIIUBI+8-^L)EB*10T&.ARK(=1T% 1')\U!>UE5-R'@C[X<5 * =TT
M3SQB_FA7T(TB,#YK AI41D#.<SDWD$XY.9" .DU%8'S.!+3</+V8@,@]O _U
M?'6^EV) Z'6V5\I2FGB.<_L\3EG K$G$ D6 O)MM60':JJ4";F]8.M'=XF'_
MF.#734BO"Z37-_N#_:O4*5\9]SB7&2^3*UV'$^Y)S'L0U2)49>BQ5+*[J4)8
M+$-([)I]?=$=0EAX2(8SF\<8..6@:XXI7GKZO.^\5QLDS69IU/>[)V/CF/W^
M^Q@>O9WAW\H0.9MF\^9FA12-O2Z^?3R'KT_K$E.:MLZC.&R_=7BD84(B9=3*
MZ(+ZM4H*VRA!^;*PF9OJS$0H986WLUJNBJSZZNT7-O<#"A\O"#9<$UQHO%%A
M/S5P503N<>3YNS@(0*\R$,MX*P*2N9KLRHM-A8T\H6"Q?KL$84*<2CDA83>M
MTU9TCR-\?\+(\A,CCHO2?#>0X%[QFFM($,Y_7!H5MMMFOWN&QMVSE^S/4]_=
M*XSLSIH[D>7R9)%<9DFY-ME3TWZWY5WAWW&7'2^V^$J.EU2T)C]YAZ2B]U:
M.<CA9Q9\G5K!VD0A0RR5V;<  OS+OUOVI&>-*\A#$>N6"2&?_(@9/:-AR+D:
M,-D&S=:H-C>EME2X7ZP0SM/R;,-V7&%Z'_LS9L#=982T4B<T1D"AM@&DCM60
M7I:SFX$H1_ TR##T BFM\(T9/!]&<*#T^3GL)9RCY>9_Y<=1&,'O,0':IBQT
M&F-.J>C7QN?"MTPJPT_/Q<'<![$)1K09%LS@!336K<7$G[BQ#7/$M^&&8>.(
MYDMO.,\,6,HS"_%==#\ UO&/8E!_CM0&K_HX[GC*^V,NK1, 2HR4<ML87/1.
MY+#PVGA,QJ.-BL?3=5L"^PU_YWZ0.)0[$@7 )N-@(1Z:L6CJPY'P;7 F#3$N
MO,-_9:+UP)K/76#I,)=KSF-JS^#<G.1755)?D@\W'TV#=#Z;I9"K#=?SR 4)
M)2-4&H_O_^>Q<?_IW?M/CWP;BA++6KV=QLR<PQSHJ3&"H_[6H)B/-X;EOEB+
M\.KM+G*4^!J;O?V794P#Y,<_/3[<7;VE3$S$W1VR:G)16_ A?'#]M5/+I9*]
MQ^A:J87!YRO <8PF=> L('V8Q1B$=4LJ9TAD'E*-%?E!R/DE\WQ@-_P'XI'1
M=F[*2=OBG 39F'AB C.75QU.2M2%@*>NC7O.>/D\1PRF;<K7 I;,.S='DV8A
M^''R$#V3F3A9$X%;Q"$\'1KL^Y@!+::3M<@7=_S4Y<'>)>U64Y>7Y0VZ^6X]
M^QT_*9VLK%:R\D]-^J>DI.5^'4G+E.IB\)Q+X[UG _G7G,$L704;LY@OO:K>
M"2+KJ_-=XVI7\4<#6=VZ#KH,Z,6<L[+E0/4Y:WK6YWP^]'R) D%&_-P_U" ]
MW<IP\RKVK-B&S;&+:Q-?# ?0!U4""5<;;B=Y''>%)*Z>Q J6\#U50NR6/+R9
MF^"\@][TINM-UYNN-_W\+J'E"$'IQ=$WSM&7KC==;[K>=+WI*D7$UGD5L4B$
M&JBP82>4K3$H[IA>T.'YWU@=Y-^D?<)NW]-FRR"%CPQ#ZY:#&I+'?O/#\#:*
M F<44X#"H__9PL!R$=-02I9'=ZA>X5^E1E86@<5!,P5=GE5'8%.]TKE*C:PJ
M H?%O78+PK:41F#7["I8O%FID95%8'';OH+V:4HC$'A@2Q<_/D!\?9?&NJIB
M2U%&S3IKU>I"1]9'?/8CZR,^^Y$OZ8A/P 8FNS8V9,+CFC3'3"ZC"CNKJS<L
M*P-K<Y5_W"2WU-GS$Z7$/DSHC? A!09]<S>-@+^[(:V]8_:&VRNPJ%#Z01.!
M.D30JLXJ> PB:)O-'?H":2+01) A@IN=JU:<!A%TS.% WP2:"/8C@K4WP8_;
M1H]!!"WS9GB&E;!J*SNZ/OY98>(]D[I9:QUERYK)MBI*>Q#4[U_??5XEJOM/
M'Z[>-J^;_9.HEZ41614BUSK.EM4$C4B-R#H0.5P;4+5OI;FR$-DZC9J"&I$5
M(7*PLSUQ&R+WC10X>2ZI:\%J%]-E;+0^XK/?:'W$9[_1^HB5DPIJLXO)^@!"
M2#N%"@$:KF>_T?J(SWZC]1&?_4;K(U9.KJ@IQE#!*@\:C&>_T?J(SWZC]1&?
M_4;K(U9.:JC-&J$+<ASJK>OO%_TOS#U*)@/KDAPGBL'!?L'W*F-0%^4X30S>
MM/>+?5<6@[HLQ^EBL+-?Z+FR&#R#PARUV;MT+8X+5:0N=&1]Q&<_LC[BLQ_Y
MDHY838O7R9??4 ^U9:1CK%4CRS"GJ5M.XZ)@=-8 7JN#EF&+4[<4QD7!Z)P!
M?+-S0MRI 'BW,A87!:.S!O#: N5E6 '5+4&AM%A?GSD03]-Y9H8_QUT*#3@.
MX\4* LN+0G6%>5T\AGLR=Q;_E^D2:#=@,^9%EGM'ZANGJKR=_LYRW0>.BUO/
M_D.@HB0J-=OM_;-D=;&DR\;[SMJ"@GCOM[?'BVB\:[QG9;.UT5+;JFTH@/=.
M_S3J@&F\JX/WM9%9R[J(<GAOF;WN:<@S:OH7N&:([@3A6(A#9AN.9]@BX7?.
M@@;]"OT-<SA2W&!-Q0I2\>#@.GIKK 7"Y+!B-"CIINJ9PZ8N7JQ!OA_(#R[-
M=QR0=\U!LZE!KD&^ESRV<^M -4#>-]N=_<L!:I!?-LAW[DZH!L@[9J_3/0F0
M*^SR6%-!2&'R/)-JG3LW/M'5.M6_,LX#D\.=/>"ZRK9&9"V(/-CN7QV7W"'#
M2F/RG#%YL&W^XF]NDH/_&8U\>X'_16?$6SEQJC_EC#.#?GCX]-CX>O]_WX/0
MCJ,:](,/MQ_O?_L_;XSE<8V/MU]^O?_T!CME_FQD3M1E$SS0S%PJ&N&#'QC1
ME,'_ \8:,]BC*8K4CF^'!O-LD+3_*_:8T6F:!O(MBC!"L)@&'.J<C3'\R%V8
MQEKH#9H'EWB_]2+'%B%.7]DX#IS(8>'[[V,WAHGA=^Y29\+#9!FIMS/04*)#
M];;FU=M>TVP6F-UH#S:L]V A^=CK;9F]?K]XR?!P!$!'S4MX>' 39-C9"PN8
MP<0\C0E,E# %+&L<NS1;= W)I<DOC-C8BD.$'G," ]1'0)/QXL>N;4PM>&S$
MF ?#1$Y#OGEM2+B&SO=JP+IS9K]JAW<@6'?.(E=MO6VS.VBI#59^A\#L<(<=
M+[;X'5?]79&[G-+3;G:*6=,.Z/[*GM __X7-?9!%O*=W3CAV_3 .V"-\[!?7
M'W^[,E@XMN;P4A3$C \$BV;V+1PO_N7?=K?+)LVKRG9 5IG^Y$?,Z!L-0\S:
M2*:=5)FN\DJM_M*6ZW(\3CZ(V8#6R+WN=*&CH(*X=?T7_"6 F&%4,/[.GV/5
M3-@/(^1?HDQ _ W2K.4M##]XLCP0G>ASE@&3\EB 1QHZ881#OSC >T$"&T_A
M&W,+/L=RTW& Z)XMQ\59$/G!KY+G^>QA1K$+0V-4 'NV7* /&"]@3T"&@;LP
M1C"-.# ^PW..C2_@9^[>/YCP'1\'P-^.IPZ;9!:$/"*$"31FUC>8\:N[AW<?
M7YNTBC!D88C/P,,T46_,3,-R ;S\71@(/CD6_,)ZL0(T_&*I,!@=>0'&+C O
MI!5>P\0<O(U\VK@)O D[\E=LP2%0) 2_>'".R)>>B3URYI-N+HX#\[">Q+F]
M^.(<:=ODX;PQ)M;8<?D7^.,SN1_A LYC%L+;$7L*:&8F/QP<>1[XP)GYTRN'
M;EA/3[#;%@>-6$?!]PJF=&W<>QN7_<+@K72=.!>@O'@<P6R,, 841%,KHI_C
M":'XGF" 'ZR8KHQJ%\<$OTQ/R>=S&%FA(P ,,FRR:]><#HW;\=BG@\2;'^9%
M[-IF,-V9X\'<:"+P<YP"_8Y_IN < $+P%&X7494<@&@FH"?G! DNDA@677&A
M(4B/96^* *Z3,$+P $TA&/F9T444!UA@17Y%O"U.%K (]Q8>(CWJAS@KL34V
M?HY9L+>K<\>I QB>'9L_)C=>KN$!_AZP9P;\FA-D&(_0\Q$Y\/4%#@%;%@ -
M9&[,WZ^_7@,<@V\L,N49I1])5XV?HY> C[' LUQ88@@:+ O"GY,#\7R"7# 6
M#$A^Y_JT.?5CRE/_\Z=ANS7X.2Q&%NP1'-'$A[-\ 8*O:=5B%GR4$9 )AFF!
M0@T >]/\>?E5U*!)EUX94NCDS>9_P+W/7'=NV0A2$M3^)53G0E?2U:K-IUM+
M18#NBEEEV4%5TJ;_"5AW)@L23P &N66)=82+V<AW:<[##LP9GWM;-/6Z9_PY
MO3[>&+<AWOWBUI4$C+<6OV0X3W("NP',,%H 50<VW*!PPX;^).)_0B8!3T_P
M'O:1$80L>'925@Z2]8A-+7?"F3(2A0PDQ%&S=U+RIH67:O(K$M!#?E/['A=X
M?&!=+K NN(CIYRXCS8 N.LD+DP5=&[=N-/7C)V3&*,3PNWMAV,C]0EC,C$EA
MZ<4/OADV#"-EKJ++<Q2#S $+!MX=A5E1@(0BQP,I!'AL3A@"WN>P%YRCD*R
M R=<MVB,)8GJ>A<G+E%>E>!93X&:\+;-^*LXY/OTD-\D?X&/W3\:[*_8F=.I
MHV3]\/ZC 1>F[0<<6"F! L!'"1FA(&W85@2$@'<S*++>LP,*$5U"6>EBYMLH
MA6>?!=)X1(K@#\$D;N\;S,,+Q!9!O?"]B(VGGN_Z3PM.F" 1P']G/J Z"BS;
MB3C=YZ8@%R*^GT@L;NA+F048!& _2,=)5X_RD_,4+[,%W)0\86NB.'&B^) J
M01\3)0C)XMEWGU/%%] "[YD(G3_12+.D,,TLY)S(=HF/9P'.?^_0Y=08HT$+
M5I<P\(Q&<A"62A-D?O2;7*YS/-2IWW0J&F1'/TJE(FZE4C1)]JBZIFHKHB]C
M6Y!B0B+D@Z**NG#VOB8EQS2> C\D!6WB1$)*8HW(^B[*E"_K?0AP9P+HA&^P
M[VB2R"E<&;$A:PP26FMB%<O97] >&E(J^03( =03M)CDA95DI$0X V4XKWVB
MD1TGEJR9RWS<[L-%&^#70,92AT[D+Z JC VD#^47G[&CUNMQVZP<5:8,"3?Q
M=#Z:!NE\=N U:SS*(]<:?\M$7QJ/[__GL7'_Z=W[3X]\&S*[P#DA[$.KOR]_
MFP.7;8P"9GUK6!/XR!N QHNU"*_>[L$MV>SMORQC&J!U^J?'ASN@,SH%0.4=
M&JX!4O_ZIP4?P@>/Q%:DB3UKU2<C>];(76#^G@P[UL2NSOS]QY1YD@N8"1$G
M5(L&)O@[VHQP.Q-##5GC0$BS9F@C_SOQ@,SC8#RUN-P86=Z30_9D).?8B\,8
M;D;\,Y!D(T#W#RF #DFMN[$&%/<8'+2/FB'7VJ3%S%KQT*S8C#U;"J)T\6_B
M']+$)23(S(-H$H[(II=,CYN[,HF'Q*&"_%H2D2!GOYG#%HR=.7UA;(53+HCC
M'U!:A5N",T28W=QR;+X&F\W]T,$?R_.:.-^3F9G"<24-MRZ#\S HVJ,!)X3^
M*/Y@?HWI"\GA.])<B_8END:X>^")>? LSCAQ$> U!!\ E1?VD(7H.Q6B4\!<
MV@$R.YHHT#\SC@+B&CC]&6$OI^-/&'[$G\#FHEEQ/G?EA<)E^M !40)4#8Z=
M. (9#TW&HP6_ZB1LBJQF<$3\\#(7'DHU\,(:1PA9<+WD:N8&5%)J;+CJ[)BV
M8@:?"D IK\OVN,Y=M[[=QE9WW7C*0(%C#Y-EQ]U]ZJ/Y92%^N8<+K\_L/J,X
M;Z4LA\414B68$>]S'K8GX1'RR5J^BD<G*X5QP+TB%/IQ"( /7[_98):L.UMC
M:I>=K2&%!\"-BUKC_WO5KN"V2T04Z>[-6"GS_MU=DBIJCVO4QWS@,1?8Q/1Q
MG^]Q%UI[](&?[X$_^A%(BT(D"54]Z1UU\&J2WY*MH@B%CQC_&!KO5P,?WVS<
MO>,GB&: E9_4N56#UYNN-UUONM[T"TK1-N3_^9W(;W5A;%1ASTZGQ=NP5YS:
M6M0?0AA^_OT@37]2CN*%G7GQYXRB7%SO^8NP"9?0U:W3,9NZO>5IXJY?,NZX
MYI[1VRM'WXW9'6[/+E0  AI\R^ ;K&W)<!CX4CN"^&WEX,/FTIKSG23XUC2T
M.0!\%>*KVS%O!MNKP2DMC-94F71)&+W+^[[5(@Y=T(L+O<65"JH3>A$4#Q-!
MGV5(ODVSV]?%XC7L]Y.YU_KZ*Y6YRP9_S^RTMK>?TMC7V,^*_"7KFSN*_*4S
M_AU:7VKD:^1G]8W2E-W*P=TW6[W>2>!;::LXS[>0(?C9N'^U"%09.BQ5M]BY
MMT%)NL6O>+Z?Z7A+H,&VV=NA0/9%8>:<T=HO61/>424H%[-=LS78?FU<%'+.
M&;/K0]8K%>7+Q6S+;#5U#V5%1J[!Z%^:^EDM+ ?FL*4>*ST!L_]G:Q'X+L]4
M&C&/3; 21SZ_;#DK3A'PGS/9W13KO@5U4LN-;N&E*;T(9_2'$TWO1(4(7KH2
M/GY+A>*8_6A]SU/MWRSP;2N<[DJP#>6(]4)'KD%6+UFSW"]DYG!('W81W6QW
M;UT4OLX9V8.2M=#]XG%J1G9+P;B*"QVY!KF_-%U5#?#>[!!UH+1V<)P(]7=8
M^&#L\!QO*F.:+80A*B@H0A3G3([]G?M$E*0/9 _^UK-O,\>NY?ZS&+D&T!:W
MGZQ:[M\9NH?)]WUM_51DY!KD^Y(UUQWE^VH1K)X@=*$CUR#%EZ:?ULUDM[<!
M5EI:/XXM?UV%,T7P?LZ4UBM9UMDJH--9_\HKU+WGYZP%\[,8N0:QIF1M<D?!
M?"MD#Q-GNEJ@463D&I!;,IO=42"O!KD*!BQ<Z,@U2.*E:9(U<=7>4#EPGH"]
M'.] [+"IIFE<)Y9PN^3:/K85R>H2%>61YZ"W?W]PG4YUT:@?K.UO6ZG07S[V
M6P5MC37V-?8W25\E*[P[J@WE8U^73M#(WP_YI2G,U8-[V-N>P*<"O$_ $R!S
M://=7C2%*DBA_=+*:NVLC2 6?O/#4,;@.5X,'WM(6OC]0HV'^'./V.?F_?<H
ML*A1N!4L[K'3P"??PTECZ@@U3N&\H)3\LL%0WW*:AO;3;4K6Z'?6;52FI+;9
M&FPWXFE*TI24E1=+MA+LK"FI3$DW+6UQT'2T7P)G:1:'TR*5KCD<G$:EKQ/P
M)MU9<P<[!) SR78B$.M5C>52M6AQO^2*V6NU*_SM&W%@[S/G=4L]2'5HU@5B
M;U"R9K]%*]D'@8>IYFUST-0Q*XJ,7$/,2LE:]19=0'-0S4&7I>C2M-%+9Y(D
M[?Y3](S^)[5F?BLG*9IKE]_&LK";M^B;;25'G>V=7=!5N]EN=<<#%+V5Z*JM
M^Z.JV!]5M[F^B&/6;:XOZKAUF^L+.W#=YGKK9'9L<]W5;:[55;?TINM-UYNN
M-_U"W%BZS?4/U!4HKL-7>2'@4GIQFC<M]>IX*#6RHK"[:1:'+QP,N_J[7 /X
M^KI>Z6F"KSAGX6#PU=_ENFVVA^KY )0:657PM8I+9AT OBJ[J+?-U@[),DK+
MHKK+M8Z=7./U+8X[J$[F+;L?9-=L[] C284@2(UZ55!_TRR.=:A:Y"X;^VUS
MV-ZN]&GL:^QGA:Z2L7^D)M>]&YUOI9&_'_*+ZX*5H&Z4#>Z!V6^?1F*NTB9Q
MW>/ZF&WUBB/RJ],L2FYRV=*E3A49N08K:,E:\%$Z7+?-5F=[I;J+0LXY8[95
MLMOH2!VN^\.!QJP:(]> V=*\3=7"LFOV%&2E)V#RUQVN%22[8;_D0B.ZP[7B
MD#IC,-\T2]8KE>YPW;W1<36*C%R#=%2R%JIVA^NFMJ\H,G+UR&Z7IJNJ =[>
MC7K@5=H2KSM<*T2.PYM>S:9YW>'ZW$>N0>XOKBY6M=Q?;?/5&]W@6I&1:Q#O
M2U9<E6APW5;/3'JA(]<@Q9<6.58O1ELM]5Q,)V#+UQVNCR>@UYV)JCM<G^O(
M-0CF)6N31^YPK5ZJUX6.7!9R7VT0R4O6*8_;XGH/77*?C-#7"F#A]%&X0:PN
MS>U3$XOLZ';5!XC3:K>K/D?*&MZ4EE]^M.;3G1W:X5P4:LX8KS?-DM6^H[6-
M[NI21(J,7(-9NV3U[VC]GMMM#5HU1JY!YB[-%U.#"#!0S\=R N;KXK;,QBO7
M#\/7B@!=?%#G9W-QO;3\[+/HSMS=(4)2A11P34&J4-!-LV2%]RQZ,[?,5G^[
M:*<I25-25JLI614_B][,+;/7W1Y*H2E)4U)6U2K-QW9:Q-(Q6ZW3N':4=I[P
M&CZZ._./:U<E5WK6W9G5&UE1[-TT2];LC]Z=V>P/M;5882@V%-R12SV+#:)A
M::ZC"Z?\M1V'LPV R^\IN$?/8=%9N*#G\.!F,.QU4*#4/8?+UO?.IEFE[CE\
M$<>L>PY?U''KGL,7=N"ZY_#6R22LT/F^ON-P3W<<5E?;TINN-UUONM[TLW?-
MZ([#/V@ &ZRI:=-K-%N5%F8MIR]BQVP-=+;L:0*OV/)Z,/#J[SG<ZILW YT;
M=9KH*PZN.AA]QV@Z/!AJ\)TF^(IC9 \ 7Y7<K=LV;]KJ7:XGD/>ANPXK'Q,X
M6%/INCJYM^P&?:U6Q^R?2'B?QKTZN"]..ZQ:["X?_69KAQ1O#7X-_BSX2S9V
M'*GQ,&)?MQ[6V-\/^Z796RJ'=[MGWC1/@[DK;1W7S8>/5]]AL";IJ#H%H]S^
M@S=FKZ]>S>(+';D&M*[MSU>I6E N9GOF4!>#5V7D&C!;L@GG6.V'.^I%\U_H
MR#5@MC3S2\6P')@P$^5P>0+&?]U_6$FZ*T[_K#S,1?<?OKB1JP=SI[B794VA
M,W5W:37[;5W+59&1:\!VR8JHTAV(.TWUXBLN=.0:D%V:NJH&>%OF34?W(#Y
M0] ]B!4AR))C0'4/8D6@<]:@+5F15:,'<5=',BLR<@T(+JX"5[6$7RV"M=M)
MD9&KQV^W-.M+W4Q6/9">@#U?]R ^'J75'4)345=,;;Y49.0:(%NR3GG43L3]
MMGKVG0L=N0;DEI:4J$ C8NTQ4F7D&H!;FD6D)J[:WZ-+MHIRN&Y>K)-,UM!B
MO^XPFPIZ<)JMIDZNTKC?#_<EVS2/UC89)JJQK[&_#_8')4>C':W[<DLW%M/0
MWP_ZI06KU2'7=-JG ? 3< H4=W;6-*H@C=[47>A'[9Z  [/;W9[7HP(;T#2D
M#@T=IVB0VI34-KN=T[A0-26I0TG'J4"D-B6US/9@>VR*IB1-25E*JJR>D>+$
MTC);O=,P4*OH5>(@<SR;B>9]NK-S"9V=UW37+5_)TIV=-?:6L5>:[Z6V%J[M
M@=D;Z! 514:N'J*M>ETDFDEJ)KF,P'KKNUTJ!]VQ"_8Q^F)O[FV-"Z:EE]S+
M.ND?.A]-@W0^F[6#JPWJ[L@%S2&C4AJ/[__GL7'_Z=W[3X]\&XJZ?Z)K=X<Q
M,^<PMYY88Q0PZUO#FL!'WAB6^V(M0GANURZ=;__%9F__91G3 .'\T^/#W=7;
M1SH%?V*@6LD[D%KP(7QP/8"J!\?:INF38<>:V%<;GA#-TPO:JEL#9D_Z5]N@
MI]NJ'R"LG$T_7MU6_2*.6;=5OZCCUFW5+^S =5OUK9/9J:UZ5[=55U>YUYNN
M-UUONM[T<_6-ZK;JI44GK'&(=C/VUJZR;=7[9J^S/<) @=/7N%O!7;$S]&#<
MU=]5?6 VA[KLQ$F";XV;\V#PU=]4O6MV.^IEYRLULK+@*_9P'@"^"O'5'IK-
MGGKM?DX@XTKW5%<_)+=57/RJ.J&W],ZC7?.FI2/1->SW@WUQY:RJ9>ZRP=\U
M.]WM@K?&OL9^%OLEVSF.UE&]I[&OL;\G]DNSM50-[W;3')Y(81^E[>*ZH?HQ
M6SB6;%VJN:$Z]K%33_._T)%K0&MQ>FK52D&YF&V; ]V91961:\!LR?:;HS14
M;YO#H79>*C)R#9@MS?A2+2P'9KNG'BL] <._[J>N)-F5'&>@^ZDK#JES!G.G
MN+Q934$S-;?MO6FK=PU=Z,@U(+NXW%A-$3DU([O=T?8514:N =FEV5?4 "]6
M]5(/ODI;XW4W=:4(LN0H"-U-71'HG#-HNZ4%C2K43;VEH*'I0D>N <'%Y>VK
MEO"K1;#./E)EY!H 7)KQI68NJZ"7Z03,^;J=^O$HK>20A!]OIZXE\Q,=N0:P
M'B>1M9J6O[V6EL@5&;EZY/:.DP5;$7(U;M48N0;<5I9 6Q5350^<)V O5[N/
M^EE2UJ!D&\T1NJ+W;M0KMGVA(]> U^/$PY2/VH%Z)IH+';D&T!XGU*5\T.HH
M%E5&K@&TE46Q5,!,F^J) "=@\"YN%6Z\<OTP?*T(T,4'=5XW[RQ9=QD;Q1M.
MFLWV:?2;U#2D#@T=IR:.\I0T/(TJ#)J2U*&DXU3849N2VF9ON+U.IZ8D34E9
M2JJL7H_:Q-(U^S>G02Q*NT]X\1_=+/S'>Y'6Y0[1?7 U]I:Q5YJ5N+96MRUS
MT-8UR4\3;24[TG3?;XW /1%8;QFR"V6&.[;]+KL+XVH?YXI&>)PR@S=Q'C'7
MA[<8+ Q8$7PDHB918;&3 X[;8-9X:@"D'-_&7X?8.=(VK)'_#-_T$9RDZ5GX
MTV4?B>,9T=2/0\NSP]=OJESA+KVP13_K@D[7K<YPT.^@*J([79=M*=C<(O6G
M)OU34JO4_E7Y %MME3H-&,MU ,VW_*Q\ K+?:,W#OHH]*X;[@-FO-_<XO?"N
MOR<(Z>66MAK01\#7EN;&%T1!)]0W&^3OGJK=LO7YEG*^77V^9WV^FG[/^WR5
MI5\5O66R:_0:@X"*48^JV_!NUI1E[S6:76G#ZW$;7F'BW9T_@U.8,B]TGEGJ
MJ>8>Z7**UW7-X4 ]JYQ2(RL+KK6!>MTE _&QP-4Q6RV=$G&*X!JN:0C:RW@?
MCLRY6EAW4V>)G2:Z=HXQ/MZ]N$ODE=)15C4ES5R]_8V%X1OC=\]R77],WJ"O
MO_ZG-9O_?&O"_B[5>/5U%:DCI:S=M(OCD3=(H^04QN/-'.Y71E&.HB@$5F>S
M9X[G@*(%!_K,EDJW$;TF?FF1TE:&.[EC=G5BNRHCUX#=M1' ZX1=A;';,@<W
MNJR4(B/7(.VLY;OK9&F%L3LP6YV^QJX:(U>/W?;.$=\G@%V0&7;H%:ZT4%^;
M,?BS&R\)]8XL/\4MPB:\J)LG5R_Y=(J+$NY@0Y:)2%Q#%G3TB962#SM0KX+;
MA8Y< P+7EA?<9FBN$H%-+84H,G(-$G2Q]K>#-;I"!/:T]5F5D6N0@W?.!ZH1
M@>VF>K>PNB9J87H6!F?CU1PD7/$S+M$J%MV@<_^Y]%&<![5K#$6Q^EA^#IT*
M2?@:M>J@=FVV\D[!&1JU&K7UHW;87FMKV"GJ0Z-6H_88J-VY,L3%HU9-6_/=
M^DQBI0FN W"V_7CDLO0@RPRYVC9<2:)*L8MG!P'["PMC-PH?)FFU+*[EKM3,
M*L5IWMNAS?8RD77TU7!&2%UKA-DF5->,U.X!97<U4L\'J<-VL<MD!T&Z5J1V
MS=YP>R"21NHY(W7G,D/'YJF][:$;*B#UTBH*B<I 89(XR.L*650WBNH(R2(/
M!G(]"@)_Q\94?,KHM.BG7=4*!HFR0 4%@^SFD%F6+AA4A?'@;'*/,W5-54U!
MUL=<0O$<*JD7&IFB>OJXS_>XTQJ>QD?+LYXT?9_Y@?.""+*8IJHGK:9--[=W
M!J\B:EA17AA42[]3/FVVN>3HN 7E*[4DE-32JK2"K^TAZ&PZ_?\TD=;[<:3M
MV/BI-+QUAN9@>*/Q=I)XZ_\XWG9LCU0>?S,' _6RB90:65FX#7X$;I4A:M T
MFRWUDMK5#.E=)V"NV!85I8UCA^:42D_-0GKJ-EKM1J>EFF#:NC$[+2TH*#)R
M#>AL_3@ZZQ9FVSUSV%,ON^-"1ZX!H^T?QVC= O!-1VOWBHQ< T [/P+0RC#8
M[9LJ9@)?6A! IJW0V)^-'(_9Z^,!]NDKE'M9L2 !'0IP'HU6:O$E+?D]+KG=
MB895>4=;8.TX_@&KZ)%,FD%S?GDG;ZG<!>-X8S>VJ=:1O+Y4+4RJJFFU<[/)
MM)KO-BG.@"QY7"*\%P=P[TGY\7S-JDJ-K"R<AIO4CJ/ 26650S$K_1+3Q9IR
MAD,A<YX?&6EI.9#Z);M]HRB!**/+G]MR+W'D2SIBI87!#L\_ML(IY26,\0_L
MK]AY!F:OKNRG#%#+R#_:Z(HO;O\ I_0^/:3;Z,X*@H7C/?VWY<:LC!N^90YU
MD6-51JX!@\711TM"9KT8;'?,=EL]_XK24B;GYI\#-K<<.^DLDFD[,HZ# $W2
M7-U7!-]G35F[6P/$L8EJ++(,^!T_L?)B/\RF=JNK,G(-^-O=?% /_MH=]1I_
MG("$_CG CE'1@G@Y"NAS-!;H$O0U&>&* ZB*N3@_J,^N!53CV>_E67UB$1GF
MRH@[&>C@/45&K@%[&T-+:\=>6SWHG8!(_ANS0F;083?\22.&OY (K@B*SYI^
MBN.VUME79/@6G=@7_/K#Y'<0A_"TRB"?MGG348^$+G3D&M"W,:RU=O1US79+
MO92M$Y"_21=2TFRB:^!R0MN8L%MHPBPQ$;+?'9Q$^5L-6'4 6US+8)/-O<S,
MW?[^!3J5K]=\G*".NW7AVJ=&=A76;JR(A/9RG99G0N_<F-W!_F5#-<,_'^3M
MY3 M+^&L;_9.B7%O3P Z1DH0W[U/\8P%SC@]U.9@4%@)=H>:Q5_C4<C^BID7
MO7]&;_@C?.(7UQ]_NS(8G-X<#71!S"J(AQ>KD]'PG_R(&0/C/W\:MENMGXUT
M7@:?6+5Y%[5E7SUXQG_%[L+H\6P2TP#IR/#C*(PL#Q.&C'^L)]UNL3T53G;0
M:/:2/+ZE(RW.XL.K'PZ6AOC-M[S#2+R7D'@?6]I=K]XL!I"?B\N8!XXW=N8@
M8HPLU_+&L&H/%AX8=P&SG<BX?0H8XYZA..1QI1/'HP=QBT:QX]H-V"C#G]!K
M$YXQN\!X_U^9'SRQR'_Q3 , ;(4F[A,R2_XARYC$+FRZ-?.!?_Z-VQRQ8&:X
ML'#CQ8FF^ 0,YAIVS P4AW"4_[* L@-Q5)TF^:]FL/U3^-+<6E#(*SYGS>>!
M_QVV)&+PFTWGM]87L_OYD;7\(Y_%9SZ)APD>X.^>S0*^E\E6'G2HS:NWW<[
M;#8+#G/$@&MZN'^PL-OX*0XCB>1K3CO&;4CG15L[8E80XM["W] VE/:A#F"S
M./:YV"GV$P[#=>%QP&6,IS !HB(2PU.D_])IS0/V;#GNRA?#:\[%<VRR#F:Q
M.8NPJJS!)#-J/IH&Z7PV*Q]7&^2;D0N*24;N,![?_\]CX_[3N_>?'ODV%.4S
MM88[C9DYA[GUQ!JC@%G?&M8$/O+&L-P7:Q%>O=U%?1)?8[.W_[*,:8 0_NGQ
MX>[J[2.= E#D'1(9W1D6? @?7'^QG^Q-\B],59,0L"+K*9$C;2><N];B#1 '
MT B[(A;T\=UM>MG>1VQFM*^+:J'2!3SX63X9&N^<<!P#UP&*1PYX"VQR$3K$
M^3X0@W: ?F''@?'(9T1Y>7PD+3!_G;G!<>HG?I$C_M+M$[OV [N5WRS#"8FU
M>3:_P1P/.3DQ3" ;&PVZ([P,@;D#_0"/G4S8F%@L/C))1AKG1@K2<_'3H>!O
MCU^_FL:]-[ZFQQRL" ^7D&,[5H E<U^-?=?%[S_C#8=K;3=_?F'TA];/IOQ)
M'"[_!"[JY$<PAN$'-+\[?P8 6+R6=P:FI$]@"/\%5V"G6QA._=BUX1ZA5>-5
M#POZ,_;XS8IW@<EG'!I_Q7 \$X<G .(*X%2<@(& ,%K VQ.X)4B6\/FU@QN#
MP4)V/F<]W3D0R"+&[W@<P0/QE&XV^*2?2S8D6FKA+D93F,<'/*=6L_'_T6MB
MJ+T'H+A'D'*R! J D\0)?RR/,"FQ'R>Z@.O:X)!;K?*?73+.C'YXZX&(Y,)G
MYR!8H4P@5_^_K^%082X!_PU*/9;#AWJQ KOA^OXW/.MT$TPZ3JH2P(P9L[B4
M,3&^,G[8[<$MWV.&/XH#7LSY=DR$@_V%:(')TZWW!4^__SZ>6MX3R[S613A8
M$:SJV7>?T=$=?N,' B@# 1)FC:]>&P\Q[S\\CL2ND20"%(4_(FDUCN* K:$Q
M&F-F+1#*L+&^+8#J!VAS@]%>8(I [ALWB!\!_A2(9\.3N=&RYQ:E1P)T Y,%
M*O]33'_-PL6W4- ;<2@[P'W@<R]3F"V(86YL)7S'=;XQUYGZOBVE="!;U_F;
M%U^ 'X7Q>)K;1;ZO%HI[;K)U8R)ZVP&>%B"' RG. O']FOC$"TA7H9%0 S 9
MI(81C,N>F9G^O$4_7WF0#[[].<Y\MS\'%ZVWPU.!_^=.PZ+\N_(0'DKH@"(%
MY#F?!A8%1A.O0,[FHJ ,!QB'=*2Y6\-&)CA9\'U?#YAKX/T&BIYX)J8Q=RGF
M(V1<]5J>XQ= BO$!SLP/PI6Y LH^6T#QP#8X8[R54-C",(@+65GF#^_QA,,$
MSOR6X^I?CMJNQ3RJOO3KD.JXC/0 VNNSPU[.Q.R1"ABOKN#/B5" ^+H2XD#R
MPZN,:'&5"!4H/%RE L5KT +]9T X*IAC^$+ @".%(*( VAVNP8>XAV.6WG!(
MK7BQF*#OAC ]_._<]1?<[C"SB'C(YL#%I0G@:XI? I+"T*> ![&BXC,'A@E#
M\3826=Y,]Y=#$&Z,\>(9HUT!!'2#:TS2<H',%:CE9>H ;1(M(_EBB1QF7QM_
M,+D^6%X(WT7]$E8_QO^X,3%4*LCC@1K##1KCJ>>[_I/X;F9$F%[F*DI^YK$(
MF.FWS'Q,VC&88N#[,_H;79V+PM=ASV>Q!ZL30D2Z*BGX@- *S(JL3$BK8J\X
M.>-:D]U!Y1X4/*1J+MKQ:R$Y/KIV0KJRDV4NZ*= _)GC%*?S!$H/W!GX<\%X
MX6BE'&4F\W#2BH#9'P);=%WQT\RBTB_0*/>/^&U9]3*9ZK7Q2V(B@4- GF<2
MORH8-%W?U'K&:DQXH7I3A)^0^>GFSKT".W ; $MW2+C#FH8ND!E)MJ]N[U]S
M.,#K6;S),P7=/DPD;A#&7RRJFN$'P(M)-H4)OX/KY(5?(ZD,V&XVN_+%/Y#G
MXH==NGM$$CBN,/D03')"R\)] C*9H1$MNXC$=$?FG2_H!X5_C[\)XQVN?<6B
MQW,\N;F=KCL.2:(.+&!E%X]@B=L";AFV.D5<Y<KPUZ?-:?] _C>GZ]4R1H$/
M:E- ,B]QL81QP24;^3-4'5^F(#M$L%U_,XY4B4K89,X=$XX3<B$2*15.9HG%
MP*]FOAVCD)+]A?'JX[N[\+7)E3<"3.:$D++PWH^(83";SQ/_++B3T", 0]]8
M!(B;D1HQ=9[0"HMLGT4.ZJ52#<Q(M,@?(@N(DSU+CFGQG<3WXFB%:^)$YG,W
M86EV@!].^HC!;LQP%&2[,Q]HQ+*?.;&FWR-1#00C8!7&V$(+8+0@Z8H3#:E8
M(5U[< ;I<0@6$$Z="9FL:8M!)6%A1.P%'O*%#@,T8:$$?'M/@UGC,7,9I]]T
M&DN<U_'@70NW"1C4^Q0$^($LI^ TY0=<DIR0_=)P9C-4E*G<6XA?0V7!FCNV
MFU*U^!1'"VD":(V-#.!,='' VF"^2?('/?WKY]\!'+_"I^ &# VL(0P#X(B_
MPW3#UUPM0GLP<'-NQK>M>23VSD/@R\\+7DJ&$&03A&UB> UR3\!RQN@[I-T@
M8,-,QM]<GI,"PC&.S%T$'%+,D(HHX0XW#99.!VS#*G#!<_]%B .HL\^ &V=N
M",GMB9/.0)Z>\4)Y6"Q#$*=<QDL>@R .N*C_,G&.8]"@Z/H'*HQP!O1Y6"#0
M@37B3"[ C0V$[@<TD+U7K<SR,L+.-=T [#O<JK0?5D@7+)]4"@/8!0MVCCT+
MP2;$:\IC$[2O^'BI<*UO F!?C%U)NX!=N!Y3^)XZ2WU(5FKA'L$U+<CXA7&Z
M]>?P2>"?_"(<Q7!@L..X&UR&P]T#9N;:#3+7%@L!>*?A-2H8LS$"'>P:W2EK
MN!7C!@MB B%.!?4U7%2*S+'OK\J&@!.X6K,2JPW@ 9;I.@ CC$CR48* $TS9
MOI3HB.Z!!G#!0AJYS\PO>8&VAF@W>V5S^ETG#27;5D@DL)$V<+.0)&/ZLN6&
M?EXB('L!*/@6Z;_9C>5BD1!*,U)?5OH78W*#8E85X* 6\\AN"\TEPS#XT+@1
MXKJ2A7% !)P@;*PGO+U@IRTX@2"YOGQQ"Q.6 'U"C0%610(_'R= TROA!= (
MM$W?X.H_SF7JS$6VM,>,W[\V$#VV\?#^H_$*;HXG<FZF_!=0'T\L8H?!:V0L
MP-&>G'$*/MBS%VYMC=#Y)Q#@)SI)]K#BT(@],DD;'X% X ]?,K-*';N)AS"Q
MZ:#7$3T4N'EX1\^XQ\_$F]CU.061S0K7D<SMA<Q#M%E6^BDF; .>L#MQNX 8
M$K6)1(>!AR<@N1.K)&SP6PW'L7W&ZQOY8Q#M3YQM??2%RC3E* 5DX 5!WG5A
MQ-U(AZ2BH>;UQ(OMX4&/%O0>@0^^GCL7.#1N=Q>J<B)BH@P7AZ8XF&<&](IF
MR(G+#\SE(D-"KR^)ZFOF;.A\'IF5X 3QL,2GTF4YU+\X-7#AU 0P9/!!.&5X
MKP-A$1_AO"/+?\-"_0[-G@&#7>"3' OD!'9C;F&.ZQ1D,]2?@)T R9,F12*&
M?-V7\O.(32UWPO5<6-S$>8K%_EM+NDSRKCP8_ RQDU3ZXOPILS4DN[O.,U$E
M_MQ%'L6/>_FF@?,Y!\L9"-D/X\CG"BNJW7@E<LP FT!#08,<');D1]R"GX5S
MEOU)3K=1<4=5X/:^(;5N?A-*71NU&LL3YF[X[0S$\%D\2V)(.,=+-/+LK0>L
MR 5"<84(8?,X'5-RX1&@BNZS=)I"4H1A^&>%?(:K(^4A48E3J64&3W")9<HL
M&Z3:()(2=#IFJDJ3,(G'D>APW,#12[UX@1\_3?-M M/AN#R(IY&/E^FTKOM)
ME!#Z[F:X)NG)\+FYR.5K2Q?![0J.2_/"8T:;B$5F";D5Q#@L#!2AS6+((P*2
MBU,)B9O/4TD)=;:15$SQ=$<^1@<Y@12+2,_)RDN&^,4K82%_]]M=8J',XR%C
M0B'U2OKHR)(2SI'#X3S)#HY1,,YW,=XS+)26,/917)=SIKT!I&!PSC-M2D:D
M8Z.$:>7U@]S;I*0Z&(!#%5=LAQ0D4ZZ0LR*Y7&OD!QL&)T$4YYW87G+[&Z:W
M\1^DXY"K4WJI0N37?)U)5!=9 6*R0 $9<)+",+"(U!)O83P!?_-$-7+"F? "
M\>LDT7[%%5A ]PF])Z9D!([/A44+M5T>?T97'S=;CD*Z3^+4,65@(,MXNCJ,
MS\D/(\W@J*7 G'O&%!Y]<2?"$H!#>2+LB;8W(.--&ALE3*'< (<;%Z,ER^'%
MVN&W4E6Q $;T&@PK]Y^^_UWZ*P$L=%5B;-P$R0_]K2@GC8"K"N]<1GQ*]HI[
MY^2JV-*BG0F)_HS;"5+GG=REI>4#79-N&0M_:CYZ(3,5N77<-?7_M_?ES6U;
M6;Y?!96QI^PIB",NDBRG)E5J.TGKO21V6\[DS5^O0/)21 P";"R2^#[].]O=
M %"2TQ8W86HJG5  [G+./>OOG,O1!H_%KT'S)N)U@9*FHC<2/5.[O^V;E17*
MY\]?XB_J-B[01_)6LV[-W* (^",E_*"<+/Z5S *##GF(9\+ZFV+L$@"">)LR
MJY3^K7)ZS.Y1+_BI8O=#_ :3]K#@2>8#";>A,'=@E!QMKDGGT]X;(YQ9\Y!/
M$(\K/-;&'$RG29;#(7PQ.#:/$Q='8'&E7S@6)W!3P@:&MFD?_#+7<34^#NA]
M3?G8L_'G$.>S6(/>U]"49^^+CFZUQ+F^&)R8N1!ST4QH?3=1XDACD&LY:(1I
M\.)-[\R\PJ8:?SY+6Q 1Q(0Y[.$4@Z%VYH3B[?=[0U>K_0IR3O0A)7QR%2_&
M58Y*K6)"M4EBS<$(>(RSJDB0[N3=5@6K*[M_>D$;LN*>-^3QO(,\;NGJ$HD3
M"*C ABY:O;5K/)X(9<,\ .LA,2S$W!5LQ=T1&>5B2Q0"@O(,63+FHMQ:3E_[
MA5$O>&=\2\3-<+I%&SQHQG)^%^&;$;EU#WF38JI[6>*CMBRQ"<IB*)WA'F1Q
M31!+0J83S KE?816'WSXFF/)J7B6L,MIP2#P@B5WD8G$0X]%.3J6K!3/N:<$
MG,+((]@V&HCD?=,8SZDJ0:^#1ZY-:"W4+ED3N$06RY/3W<U,J76Y<U&HM.='
M(&X"2GN/U0K3AG]6'/=N^_8J;,R4 %03%'=35*,8\+C.,53%%-4+X=^\I81B
M$-,^27BVD"B&UTZ[,1G<[E8OE*.+ <?Z1%_Q/- #DH (&1HZCJ)F,_0P!>W&
M519L_NDP"\?[-JQ,GAA,\^G'J]]_^7P5?/@I^/#QQT\7GR\__'9U(,@:O4;P
MOI4*J#*D"'YLRJ\#6>[O*1OY>*+11B?<+!B>$?E&**'CPB2J,1\L@% \96-5
MWB+(@LXT;I<GLUN%_BM\5LZT[D J@M^!)<D#-*#_U]?FY#UJP)$W( =N*&CU
MJ#$Y/X7/&_&YW\0FM*$H%C%J]GDY>BDNGLE5C.0PU2%J6LG78$R,0JC#S&H@
M+*X:T,$Z%Q* 6AR]"\RC%2V3,&E+-Q%6A],5RAG0QM(IA&'L@=KW) 3]N)!W
MJ!??L.Q"U%Q@S]B4%@PWS7*>QEA=1^D::R#%E"4'D^*4#Y_QYBA.:?$>$I&(
MK#V IQACG.A*D[[T18+6FM)Y-*$T 3A&A$^!K782(#K&HX+?>U<]C3/8;_[^
MPQH0S1B;3A)BD \\6?MDN5JJXBV'.X] Y%E&:V1BC7D2<C$@_UU"*LX?T; Z
M6B95<02<'0;70!VP_Q%%LHCN* ;/XU#4P1G7FC_@3SF?H ?7?L5)DF*<:+7$
MHPBT3RC*C+AZ-XRGD^FP!:M8)5-Y#)A\%N,!Q[KT@H-)N,8C>/I(K[%HS-C]
ML XM,"H&9R#X&$5XJ<8@H62/;W3("EP$>1 G#7O 90#&UWJ(*L87\>&X%&>+
M&-D5:4-3<X6$QIR#_$K=Z2BV>\!?4SK%QJNFC,=QK5;1JR "*+1L(I9>_)NR
MF@G(J)!S>%@9Q&G@4E+R=N;K=IKJF%J(XSX"^VZB@I._P$R]0\C)Z12T*_C
M7M%\.;6NBQ'0PD-@'<6T@1)B5 M$:BCVY\"CU_M$(O\SIJ;0+H3GIPJ#J5Y@
MW<35Q4\L3/2-LVAYA*DVI]5\)J@H!X:B57 ON(J1Z?4GO9-56*G.V1*+09D+
M$M6NPSTL%%<P 7#LL4G%,F:5\%?^H)VDMP2:<2@@H"\,CV5(DL1G\=T)AXBT
MHVB/[2TGI!#X*X4CQ)/Z;5Z;Q"E,2F RB0H"4R2K6F;?BP!(*9&-=^HLU$3%
M-]K<L#J"(.T&1D/Z0U"4H2-910NWA4R1/2B#1E%%RFQ.LHH#_IJ<6+*%Z4)?
M0B@,,DLF_#*U.>1U><N^$RL6W('%$GMI4UZ0MQI.P.CTO0>3--ED%[?MYO9T
M2C)HI"2/_)2D! T,R5(3-K,;WHQ#,^SQSXR!_S-)D#AH/@9F"L\X'160Q3TR
MXPHSHS9<<\SPBLE7F2PY,#]"%0E42*.C6TMXN\.(27R@U*%?:-*.!\PC+L@B
MEG>%C382UBMB>U3 #H6I151VE5#>7%OB)I,X68F9K:;Q1)]S2KD*E<BF9L@4
M,L_]?HEK:1<+&!0F_&<V=N<$(Z=,;.Z](85G :672[91G.@>2K,Q"1%PX,O:
M^B.&8IO)@S!<4DTTF2VX:[!6L:=\\ZS 4 !5,7)5(D7&#.H)0_VF*F*FT$3#
MW3^2\)K9:7UBO)04C(R[[N/CV3CC?)X-7XAM@I'JB%QXA'UP$C/+OP@D@80<
MF8V* 2"NY2B[041B4!PZ840N5JV/<.9:@/L^%)[*#2T.?QX5!F@I*$B+PQ1.
M21WT\EJPF1$$6J03-6V2VZAPV%P5Z>(ATC#"#&[I@KD*EA_3@"D-(^,11#/4
M/TQ,$*U!?<&JYBI92D6 I"#T!VNH4B/ZNX3<YA)R@^,N(;>-A!PU[S&'6#([
MM:B(@TT;G Y>4FI^-.H=\_3$A KY;*4.L LL?P?8A6F66] 6<?JHY(C5'_H8
M?G3><F:LIP:CO1B\Z?6-3??JY&SP\O7: =9\8M2SH(-7Y_V7;H^+PL+T"@:5
M8!+NEER#V0Q$%WXA"EX<.YB+5\,3F,14":0M3IL!I/8B1<D.R? '83IA^K>Y
MP1;OAS=_WT<I+'A$@(Z''=2N$(?\+)/5JR[7H3RU8N>8(QDT+M>*KG!#C09Y
MHOT]%[;*+W/KBS6PU=(I>S"SA#><*1K\J7:_-/94P*&A P73%@Q65)GJ C*X
MZ4_W:VUG*A$AWL#3% "> E.&#"@Q:<C>BIWL"^AZ[-O%A7$:?BKU?G:U:*P)
M0*:VED8O-L+I&4/+P@'%7%B+E?.]'0VSU/OBX1D]T)D=.+:96Z]1'9DA,PI3
M4,,..[>(FQ=HU&<=&HDNE_D\/TMVXE2BJ+2)*E_8$@D'0Y9].[A>_%<P>NMW
M[!Z8WHV#@]P83L_=J:\#Z7T=,L]',=A*E@<F/..H#>Q*C"7>WL"NQ0V3D,&8
M#X%S/&]>#@HCBB?SB.J_QL"B_*DT U<BQ8HD]A]@#;Z\H%K_N)0H,TI1[M*!
M.D^!%W(8GKG3 T4?9MXQLW^*19YWB!%B6R;.P<0PM6656_'').#ER Q\D*M3
MIXK"5]Q5L?0P3DZN2H)%'.]IR)(E7H&7Z\8!\JQ36P#D(_Y@;V6QC+@#DBYI
MEHZ+IM@/0V7)Z@AX!55A453LT.-Y0179HFY::XA"78! /0 ,WZ/[R"S59%CR
M405%6901" +X%U$A3@P/W7G<95M6<:L45O2"(D&*K QFW-D$#C217XF)N8RJ
MA[#6EH^)_R$A@B,IG*H(A'Q2"BK3T=5B#M,"XZOP@&(\QZ-JB4!56H0MC81'
M*NEN2FFJL09A(VA*G]W&<HC@U"^)(RF41D7AHT6]3F+J/S!*G@0+MUFJ[:H#
MA-5A#?ZX["]I518!*C?U"@8FK^,FI<-CK6+5:E4Z*4?BN$]Y/E[Q J=V-)0.
MXSAWTM0HJ= :P/8FS+B4#$!6#3Q61=,F)YEI,,IZ/KZF15E'=- %+;9>A*8E
M1"I\G/Z#,L#7QXXI0M%XD+5'U'\6(=XI&#U8)MDL2D#T2@F.U#6,355,# ?&
M. 3\LK#;'05X))SZ KO53G>9>N1IW&J H(W-&Q]/G)UQHH%T>M$TI>"82!(6
M#93H2TPC+\$8: %(W.ZF(PJ.U5 %J+$L^#D+*#P,W8)1WS1+CT2>KT$[X":@
MY4BQ*"V./-VKF[K1MC-S&VJU'037;G8K)]/&4>J)A^I]!?1\7BU9+>AQ6/!$
M*!.F*HE6QNW'A!,[+O?X#"P "LT9MU%<ZDI%B3F+G6MG&YINB(+QX-"SG!U3
MT>+,WM=;KI,RXV8C6$6B:R <KT<[(6AHZ=#>"@.AZ("QG<75:=+>1S+MQKPK
M\<RB3EF!2OF2ZK( 43E&:I3@?(*_K^,DG-#"\&_*<AS&R"2>0 "1-$927V$U
M:T$<0&IR12/) 2R;M./5'\;Q^3Q7GIN_;(OED'O?$D2*4O_=*H<-*I23K)VI
M*='_&@58RD(;^&\<IR9' <?QCONSZ!]TQ![F4A._9D;P#>04&L=!!)-<S)9,
M9. *@WIV>F@O*O8\Q.XPJS75V<!I&!R0;*13EM=<#+RT(D295R*'C4*BU"GG
M80AZK0[/-#_P 5TZM$>M5#SL$YH148JL&6$-/4]/TC.<;K$3.]+3-AAM[FK@
M]"EJ0V6S^70()?KO;;E8@K%E[%_!"&TC!RE_K"9('W<O?$0^?H 9S.3&<D6(
M")C(&!'N.B="RA:(JOG(8;E(]';H1"G9@]?_54^LZ"8,.L_7;@VXZ3H/2^!9
MRG9,42?M8<TU$2E<5M&VKL]>:V%)$,(ZQ0?S^[76SIJ-(8><=,>9V:"+\I#_
M\I-/E_9X!YMCBJ(ZNI2@< 4$KM((!<0V9]A QEI(\A(-S%#(*)YR52S\OVT#
M3& 2-$D3//\!]DD#B30I@E=5&H&M3<AIVNZL*H \\"UU-U%+0E)A6 []F==O
M=R:!Y5SN\J]EK9[BSJ MWD.T]F8@O&\BP6;K__7=X FN<#'IMWN*$)ZV[J Q
M@WMJ'IZ03AWM=XWVHX[V&Z3]I2CO;M,WN.D?C8X.-KS_CT1V/,4-EDY1'Y@S
MURE%$/^;#*'@U<\7%Q_17&G9A,9=@D]T*ZOE '_$\Z<:<3/KZG9O]T?I=J_;
MO3VXGI[Q>]C@)=4ZPQ'EQIG&R('KC),OO /<MT;W_^MCOU@_['J3X]N;&?H&
MV>$P/#X>[,"&=V3]EF0=A>?]T0[L=T?5;TG5P9OP^,V;'=CP@QEE&U0\.;M?
MWCX9-[_\BQ;#C/YORQ;#1&I,=8)J>YSS\&WQVQQ^*T;$<3@Z'6[[+'=TW[R5
M,3CN=V1_;F0?G(:#TX/W&3JZU^E^BJFV?3)<MA?J^)FR_ R#./2#LD5!%)X,
MS[>]\$,:91M$/.L?O.5XZ"3LAV\&I]M>^"&-LA5A>G(_"7=.NV\O+/&S@\&T
MO:WREO2&BQ/<-E,=+NN>]<ZVSKH=3;^Q3AGUMN]M'#A1#V8MAS3*/M/EKWKG
M^[K>CD.Z43JZ[/HH'5UV<Y1]ILLN>JH6-,T.JL9+_Y:E1]O'3'<,UHW2T66G
M1^GHLINC[#-==CYA.SRV(=T.EKXCT;_3D_!L>/#0HF='UL%Q>/Z, ,S/A:RC
M47@VZK+X>YYQ&3P Q.@2P,9:>->!T1\U_%9,AV'8/^_0J<^.[F!;#,[N3QEW
M=#] NH\&X7G_?OQ'1_<#I/N@OV=E=-L.;G1H] Z-OE>C=&CTO1^E0Z,?P"@=
M&GVG@Q'M:/1ZT]H.B+Z)0OC>_09 AUG>1YK>WTBGH^GS36X?\BC[3)<M7;_Z
MO._F[3]J3(<.W=V\WV"$]IL/\"IPQ7<]X"WG<1)'[M4EJ2!" [X]K-!W)> 5
M!7RS9R97"A8EL%=6N)>/M+](]X/GZB:&F?-5(HU!Z+80G%11C8LR+O&R"WT!
MFOL@7UJH+^/&ZQKP#H@\I=O1'W'M =T(CQ?P6)M7+B*2N^#L[2C^P'2=!CQ9
M%6I6)3*WJ,2[9/ 6%YI\KOP=7*BHH'?I-G.8#9O?D1C@8(_#;)D-UEW'T%V]
M\#C-L9,![NVWW^_N0MA18FSJ<H+':]R],N+* ^W6W.W>H>&)O4:5^@;$=2CB
MX(ALCAW@NN<"3^QZ7!\D6;?2XWH7<P+?_?"KW&5?F.MVZ=+1*3E2Z@YO7(;_
MH"L=Z88[<[><N>X1;^WC=U_1/;Y\K6F$KLN;P>#X^U25)5C_]%_][U]W0)C=
M <(,!^'9X."!!QW=&WGNT_#X;+<%X,;LKUKYEA%K]K9Y$6#!*QVYV1T9-@1F
MFF;5.%'?;TF)/S2AK@2L8X7M0KNW4#;V5TV]_6?*+LW8C;+/=-E-&Z7E,I/K
M+)L6E&?J0D4[$5-X'C>9/#NR;N6BDBY4U(6*=BQDT(6*MC]\%RK:J5 12S)C
MBW4!H[V-$CS+PO^.%7:G%\#A 4NO[^^*YA85H>3,%54?#?K#EVQ!(E)RF<?@
MWZY4E ?_K*(<K,^0__ABT.\=![#+"0(TRRQX<7K2.S,_$$)2!62=PECR;H\7
M'N#L%M&?61Z7*PT&K3V*!FC_[/MB_91O5:[72/YV&-S.%2Z"X)L*+>5@F>4N
M<K:Y&C-,\].@0O2'836W\W@R1Q0JF]1!EB8K0K=&USBSF2* J3:S]4(O&,5;
M5$D9T@SJ!KFS\;RMH]YY?1.;LZ;]'@X= MR_WVX)N7O3"4)='\D5)Z?"%2^.
M'3+C/ :]$_/?8S7+<L6(7X7HXSF<.+L=&T+*/M$(%PF"?J_G#*XF4<*0XD3!
M[N;9N((5E_,H);X ]PL(E<2I(@,%_HC_"LP$AA)P)?+*/ZL8?3?8Q*):(JL*
MN2TU]%LTS").XT64A&"0@ANW8NK@8PBM!HK=X&F"7R*:UW0:PT\$!L?I(#?#
M"]E"L0L(LTQ41(/SHQDBM"?(*$>% FJ"\931I*H4_JHXT,6;/ =!#6M;Q2HA
M8PO)?9TS1KU0^4T\01@XS!*.RP3$<8R,#@,)O#PNG'7Q:<UNP5F]47#&$N6<
M'5P<?!3V:(G@]*PJDE6X?I-P4;.DFI05'/X E 4"WXEIG7-CQ!AN0]N1K'\'
M?PT6R-;RQ9B$";*Y@<-',$_8OF(>SQ"@7MXJI8LX<1A'E-#7XGOP[_IM?*"\
MS8CR!-X'8L+@10QG+<I[^WV4L/!#M^'Z))(0-XH%U:]\MJ3J8Y_766LU)@X*
M?(*$M?P1#N42F!PX>1FA8,"#AD<6>'P*3 A,DT1C^(V='76W5 16-MJ!GJ(R
M"=A!X%!@E)S4*G[$.8_5& ]C#J("0];$_7$^/<)!5_S9 I]#L;2D@X7/L!CC
MH:.BR"8QE9'<QG!@\?LEBGE\T!4"LPB+5E!JA'@FEDMD<?J&/7;&==.R;U:E
MHG:*"E0M2(9EE8,"@<-]#5N07<=%B0<$/P"'.$%I!S.J0&%-5"_X4.54Q8'.
M.DWQVJVLOH7/]=^\-!4K-45)-(A$& _/['--W=LCZP6L0R+"5+&&I &F>8RG
M&]Z!4<'^#,8K^DA6E07I6ZU/->V2#"P-/<56D1:G<OA9V;*\0@D/DD-;-5E^
M'8$^IX=\C:^5U+I5DYWSQEUM<PIA,!K9)XI54:I%X5';/HFD.7.>MGP 4TG!
M4O*^K.=ZN<[,"3T:BEG6/WEPOL/'S?<O3G<GRGWJKSY9>:+G>8TVXH2/&C[G
M-[M@80F:W?V&O%2L%N,LH9F]&<+,\+D?VB;8.J^/#A=>J6O\W[?!NRB95%QR
MA_QS[=>=M;AFKN$=>ISM'X)X@06"VE\8]H!_[_43AKWSE^O< Q)E\$$8EH5)
M; 2F#$,3@#/3(EG%G4#!-ZMR4A,JG:,PGFK!1[YD7>C=9$FUH&6[BQ0#EE0&
M)28F7[N!Z[R8WM;K;/:*FZ]$8EXZ$M-P]4]":#(DXG%%,5;12V+%Q_<P2T'<
M@@^?G_B,T2:G/39#3W/4&SSD\ )'QX6KC(43T0('QTLQHT?!>?^E,^&VT0M>
MLY\Y W,_0;Y!0QQ<L02VXLT;[TORUJ368]9$37IO/.?YI#?4_]T+C(.)Q:[Q
M5*I=R3:(R$N81 7F]/"XE.+5W;H&H"@P= V#GQ78!:K,;M,P^*SNL# 6G)0$
MC.M5<,;EAF&K4="V&?7E6$/VQ;%= 3^1EMJ81,&A9VFG U;/A+_* DO8AQ::
MDMLYLPL-Z^$*X-T\0A(<H6LM%;JP7.W$XN?&( *UQ'##3-ED4L%9F*RT/<N;
MJ.[0LH3G/V%* _XY^:*WK&UOX6?@QWE$P_(2E@K^9UJP/-7[R3^R,#/;-8$C
M!]8;T&(2+6/PW,%N0SW/$])%VK &.!E3HKG>0#U^:$-1MUF5,)?@AD]*?F^I
M(G3UN?Q[5I4@$_4$P\ RV"W0+$CB+^A4SJ,;,#4H-F!C >"2'*'\,:EF=DG1
M9PAF<0%RP[ ,["WRD]1IHRV=J))+K9?S58$R!J9C*]/=]?2"/^9P3F_1UL&O
M3673<>UX9MBJ-']K'H2P\4F<*[*YY?%9?(<:4RD<![@CY>.(>SNIBA)6GK,W
M3C\MJJ2,CTB17EP&.?93\ \#>U%.> RD#,CB: $,5-*SY!S :B>PZIP=&C=<
MT^!$XVGQ3.E7$696I' DI= LWN!OQX;5'T;3%AG$A"OK^]04$U0T/XE01:=T
MQMI%+=?Y$W=;=\YA8(J! 7NZ@S4.&/4=(.Z#XU^E:'Q\4:4^N_9Q^Q5<4($)
M"E0<N&W$QVZ4R6R-%EJT(/,!EH)P@F%K54Q[KK\'-,AA"4=3M4RR%3),IN-X
M%;C&G2'Q58;$3]:;^M5Z4\:4\#U4X;%V#\RJ8O1\,5+'L58@Z]EHG7$;<D^'
M IN(<+ABG3__SO']S3-'OB.* \.7T+JU2E [_SIVWW=4(2KW_H,!>AL.:3'>
M16E,_0\!0S-_UD(T.M#CA3) .Y\\:#+](6F3UC52X!F#GTOX9#PAKY1E*K"4
M:&L2;U-0"3E*?1#??X(R D$"4I"$E8VEK@G&]G0,@"F,GRWB.QB7:O-%NX0D
MNUG1K1LQ0Q"44KRE":PAH?UJ/%A@A%4'82)@I<9PH]ZVTH)!UXUH,.BZ$6TA
M6GT5X]'7%I)D>8SGAE8:>^*DVM&0Q["T>RS]2 6<1HDB\,OX&D>R%W#:M/%4
MF.R&EK]5H5BJF'@U'&A^D0)U-FA-/W+H=QKG. ,W4E[+G+!E)8>^F&=Y>02,
MLK B&+S91,*H+#6<+X*Q, $SBRQ9F.8BN@/I]__T9O >16,Q:"^*>N9K#-X<
M&RO6?!1+2]* 00$[&*,_ ),LOH#(EK_;QD=+V%P*<!K3WYK]9$.1G';WIVT+
M=6>F"L,VR0RM)W *"F7G1=)8.P(T&B7$(N -^#:9WW/T?=-K<@1-?R=TBLMH
M-L,G$LS[YNXW_YC'B9+F4C/*0:"JPE68/*1F.;*S-;R+6$'K-G)P2#.Q#I(M
M9WNS+( 6$SV&#2B1]H<_PS+RG-P',Y)1$<P<:*S/<3;"MP6S.OPJ 29+933Y
MA84Y!8JI5;")\RR:JE0SAL[[C+6U>JU2A<NC2<RBFRPG"0/:J8(C1TH:AD5J
MB7](Q!#WC8_1K04-^&KN\K,7 [.9GUL<&W@W7D;DE8G?J]>E<QE>P@2&1'$<
M7=/^X5,Z7<'-KPK'J:2<9L2;Y8=[]$3#0.(^:98OT!D4$9&E:X* G%>G\2BC
M[J;<C>L&K&6\5<=R)'^Q-:+#&[+GN=,+/EPNML5EM1CM4HQ]B57*G WFY<0[
MXK^3MTMVE/F5.*50&H: ;]2RB!P$*PH,X)*]%A=?F*&L#]B6)016F2'E4;\L
MP#,?*P/1(?)Z'#IEB>X?M[C@I#OA2\  5M1$.:B6$F-R)$$$SC60'&4^'*5X
M$4DH8OWT#&=@ *?03\I$(PH;BI,?W$1YK-C=UE),IRL==G468V)(-Q2\@<UF
MGJ7P$T[K-LN_@/U9HD,1PU@D81<"]-< AEM2!8B6<+XL'Z @#>P@*IE,;'P=
MHD!ZB:RCB;'&T!$&7,7"E!3@LZ)1WTF8*@(JT=$L4/4:\YGE-ND<-X59-!</
M;R6DMA#S$*$7D#B1":L*Q6RG<)S0K-"1+AX-W(\*&;+!&33M&)3H%)7O?I]M
M-$&O&'T3!C^3KDAH@1=31/]@[),LI5=7/_][M%A^?_$Z^%$2]P> EC KOW96
M'ODKUS@%[=T[V7:!4L"?(P.'T $I"V^P&/$B2MA=7L1%P2?2>--H":<TH/=)
M#<U0=VI2X9_#^OQ(^="'\=]L/ LD8)&EJ4I"CI*"1HV<>%D.9PF178*\\M^U
MDT?.5S195'F*\@I>P _7)Y (#[Z1@[9 .2B!1<(E6A5/"'I'<8>T2,UC?@"X
MGBY 17W:?^F%'4Z/7]8_N3Y)Z<  IEF28/ .S/*B-@=#=R_H^F+P8(C%F]B:
M2(OEH2G;ZR(RT1:<4$S7Y26/(WAO:A ^S <1AX&[H-I@&OB-,86R2 ?)<*"X
M\@HE,;+9&@X$"V<JKDFRTDMRDK5$)\N Z,G!3"P@U<E&3.\CJ1NMM@*;DKK'
M@Q%\.T513AU1PW5SQ0DPWT=D/<._HX:.[@AFA$U>86M8QK/\KVL B\UKI%H<
M)/$ZY' K[^#",2QV[@;4,*U,*07TQ<K5$=_#4*.S%U5K)");^'J_A3&JHO=J
MF:-7:JAYL4"CDWGX !1.8WV1L[X&-/NXUW\D-/O8R?*N.6,B:!#A"6YXX@0?
MI^ZDQ@KEB)\#==(X8'^N)$R ,(PX1X5840HJTU:MFPT[ )[\L-0.]"7YW ?
MAG9)@M!&8H)J>PCMX NE?K/\8KVR-5"#FH[6''\V6)]7(65FIFR-$YP-.(3(
MI#.MTHP,9FSJXXX;*/;SLY<A!88<@ EB.(8X+P>:!'/,:KOGX,<MHMN)Q>4P
M(>TZN<<()U0S>1;9%+^MZB&4^I F?16CIFNF+CB"XJ0FF'#<[IUA CKKH(VA
M&0V)<<%J IYI@2W-4;-SJM(&'I' 3=R"!0NP<,#A:R M#@&U+,2'#!Q&Z08*
MCDM=E"(>$Q'<_'@PPN1RS:F]5:XU):LV0)V9;Q/5K)W1(P0+8PE3%PY=F9!^
M'0-8@^^M+4"R+HPYRB;ZQT;[R@(X_K+]'];,<9ZQ;)$H7 POES =/"LO!L>.
MVX&.:)D+2BC)HM06HMTBN $1.M[K4S5^A#OT>:[CY!)QQY@?QWXKRD>8R\(H
M!I2AH7[/M6$VV$710ZS-DGUS7>(':&/K[(@F**$F[!\Q+ .3LM3Z!M;.G\ER
M6_RB5_:^,NBL-BX=9SFX3TH7Y^B$\(M^WT>:4=3O)HH3 5 UJ."$YS4*7Y,
MMCU%69[ +B8D#=G$>U.O;7,(O5/X[T-/  ^[!/ V_*%*.;$0D9<Z.('9HFME
M#HQ&:<))F7/]3_N)-H+46!C:S*M[TC6E8YTM#&*X!4_K1.9^*V[DOM_4 5DB
M%S,*)OFT%$4F$2YD"(D'U8I4R07J6_12B*H$OG1\BI9I,(V3"F-QQ9R#5>L0
M8)Y_-/J:CQTLF\FM)E?@I3SV)IJ]7>SO*=5FDPEY&].U5G2!4T28462.N,@T
M_)"PME))F2NO$!=<NB-RZ;2[III;%KS")Z6-EF9%Y)^C,CO"6@AY5UIK!51.
M[3WL_?VUP:4\8O"1-[AEW=K0H1Z[\>#:N=&VR+B$E,.G]10/()PDU<>'D#[[
M3#Z 4Z+A"<46=G!T\:A__)*EY&C0.^>Y&F'95M=:P,#Q+)Y$7* FY2^$RKC-
MC(\AR%WLA>GA/-H1&EK N@5U;L6)D_?I'Y_V3HU2>74Z.GGY>BWP8\TWSAV'
M]U5_=/SRM>-[%=92D<)3K(^@-'PVFR%(@N  7M3MU? ,9F%*@F,SLNVG<B_
M.6PFHGR@;1/(>B]NVBMTC4S%DCM!$/$9XPV:V%_9C8/0>NA-MQ#\P1HTPSHZ
MH-$PCW5H<>H< _<+0+:+RR/86G -.*=4E81QFWPQ"(>QND80#'KH[KF22DGX
M(,EZ-SZX_]1P=W[9=N#75=1'J?\N-PG0D2$Z#6I*\(%K1+BE1N+HVBN!3_GO
MP1 WG" 'JR"-)9[M!(4B0JURAP_YP709RK-:HR$G\+S0A4Q^KR*$RRWQ7DHR
M3ALQ$FQ^4G&"5! O+;T!B@ +E18,=7)*;UK6/ZY6A*S ^(JY/S/F5B>FF),D
M#I6!(<I)XVMX286JA>!:4/PR]S\(,(J(50>))>4##&&T$SO2TS:5-D*=)BIP
MQ6%L+)W:]]SJ>RO<J9P4H_+4%<AK"L0@$[4V.AHZX;IU[8A(/X#.HD(NIPU1
M:X,JJ_ X6Z/_2W_$<!XAOZQ"T17DJ0<K-5-*IS7$ENN6V3'O5659>UUJH[V2
M%SUM7*Q+M]T6<D)QS47; 7-+T7%2B$;1![L>847U[)$D!U&>3]GKF)E(*?QC
MQ5:$B<&;$"E'3-U *?HGH)AM,-J\1 ,CX;,@BBDB0GB[1URKN^[ZVI#24LO2
M!?QV5]H^KBQO)_O0;O@6U488X6DC!XWQN_MS.\IO[K+>CO*XQY>BL[M-W^"F
M?[1HW0WO_R,3?T]5G,Y+=.Y?^6\R@H)7U-;[;>LF;*BK\T'>T=SMWEZ,TNU>
MMWM[<&4#PSMBJM83G>&(\K4-W,@/W@'N>RYW+/4'P[!_=O"7RSP_NIZ&)\.-
M7[[9D?6IR7I\&IZ.#OY^W0U?F;GY2V]&]U]S\F3L_'*W+[J[WVBH-Z/<F>M\
MNKO*?NCWA^%I_[G=X]01_H?^*#SOGW9T?VYT/W\3GIYW=']V=#\]O5_([YSI
MTA+O\$I1Z+6GO+22,1"'?E*V*(G"D].S;2_\D$;9BAD1G@X.WGH\="*>A></
M.+8'L[V'2\31^?%^*?CMQ2;<5N:V+#MO27.X6,%M,]7ALNY9[_Z(]R98MZ/I
M-[;N.IH^-4T/9BV'-,H^T^6O^N?[NMZ.0[I1.KKL^B@=779SE'VFRRXZJA8[
MS?ZIADW_)G>H;A<ZW3%8-TI'EYT>I:/+;HZRSW3YIBG;X?$3IVP[>/J.1/_Z
M9_WP[/!A9<^.KJ/C\'PTVH$-[\CZ38_K\#@\.WT^90<'FG,9]N\O".I2P&GY
M=D@S?M=ATA\U_'9JH 9A__ !*1WA&_+K/!P>/IJLHWNSF'40OL$6\AWAGQ?A
MAP^XB#MGL&RC"'_88=([3/J^CM)AT@]@E Z3?@"C=)CTG0Y(M&/2[[D@;-O\
M=+A<>]*[OSZV@R[O'TU'O>U+H@.GZ<&LY9!&V6>Z;.FNON=]D>/H46,Z=-C)
MBQS_=0Y\(CYKO^<@NXFGBF]VF&0IWJ<0N;>3I(( #6;Q=96K0M^,@+<2C+,;
M<S?% I-:DR0KW/M%VE_LX:T?N;J)8>9\6TAC$+H0!"=55..BC$N\V@*O <21
MW ?#8%R5.(6Y2I;Z4BFZ11(OUW[490?P-Q5-YJY]&_!UO-.,YF'O0/''IOLS
MX,FJ4'CA-D\O*O&R&+RKA>:?*W\3%RHJZ%V\@A;V/6=3.Q)C&VSON&!&6'L)
MPXY<N%!_]:EDTY,JD#EL+ZU)O04:W>;1-\&#M;60%0$[Q0WX;HW4_+=C^K_'
M1\=;A.BV^_H_?,7"YC>_H_8FJ-U^K<*&-__QIL/36:,;Y[/9C/EL^WVJ-W^F
MNTW?U-)W,5?IM?K4]V>N@V '1V2^[<)>/CH(U#Z?%^N8\7&AKOM:>N_<OCQ;
MBD@S[CTZ]!NK5?P5;]*,\4AC>U^ZJA<O+IZ2,ZCN)DF%Q@G=/ D;/+=7XIE;
M*>F*3WKW%7PF"[[ %I+;)S=9IZHLP4?1=U?O%H<^$&S9OD[\FGE^S9D8O8$S
M,:QOQ\>+]^\O?_O9!1=M8P\ZMM@66PQ&X>CX=!?98C=MIEJ]FGOC.4A.C(Z)
M^ M>Z<#5/DC (;#0-*O&B?K^273XXP;]*AVO*]7NY]QA)]#VF<JZ;FWWB/Q7
MK;O#9+>=49"'&3]XIB,_)Q+OIKG3<AO,=99-"\K8=9&BK[59]*4M.[<OSY8B
M<IO*'IW]+E+4A02Z2%''%EVD:+=-IUJDB.6@L9^Z>-&FXT6Z.<'NA1(Z*G\S
M*NM.!+M'Y"V!HI\0#GM]?^LVM^8)Q5VNJ#AJV#]_R48C@CN7>0R.Y$I%^5&9
M'4W!X@R68'1FTY"?>3$Z[IT'L-D)0DO++'C1/^OWSLPO!.Y4 1FF,&;+AWH"
M"<49+Z(_LSPN5QK3JE_C)]$,[9]]7ZQ?Q:W*];+)UPV#V[G"=1$(5:&]'"RS
MW(4 VP761VE^&32!_BZL"_AR,D<H+=O5098F*X+H1M<XL9DBE*RVM?4R+QB-
M7%1)&=($ZE:Y0PK>X?YI[Z2^GXU9\]8/AKW!?5M?VW*W]-V]I05!NX]CEM'Y
M\4L]S=ZIQP?GSG^/U2S+%6.7%4*IYW 0[9YL"//[1"-<) A?OIXS4IPD#(.C
M$P6[FV?C"E9<SB/&;X,C!DR8Q*DB8P/^B/\*' 5&#W F,LP_JQB].-C$HEHB
MNPK)+37T6S3,(D[C192$8#B"0[=BZN!C"!('BMW@@8)?(IK7=!K#3X1LQ^D@
M2\,+V4*Q,PBS3%1$@_.C&6+-)\@H1P6H!C2$,II4E<)?%06:A(QSD/&PME6L
M$C*<D-S7.0/N"Y7?Q!/$M,,LX<Q,0$K'R.TPD&#EX\)9%Y_8[!;<UAL%!RU1
MS@'"Q<%'88^6B+3/JB)9A>LW"1<U2ZI)6:'4 ;V"*'YBVG]648XR 28A_QK2
M-K2=R_IW\-=@@6PM7XQ)H"";&VQ_!/.$[2OF\0RA]N6M4KKT%(=QY E]+;X'
MR:_?Q@?*VXPH3Y4(0$P8O(CAK$5Y;[^/$I:KZ 9BGT0<XD:QH/J5SY;4JNSS
M.FM-TL39@$^0P)8_PJ%< I.C^HM0,&!$%X\L\/@4F!"8)HG&\!L[+NINJ0BV
M;#0$/44%'["#P*' *#EI5OR(<QZK,1[&'$0%AHR)^^-\>H2#KOBS!3Z'8FE)
M!PN?83'&0X/EF$UBJHFYC>' XO=+%//XH"L$9A%6X*#4"/%,+)?(XO0->^R,
M&Z9EWZQ*1>T4%>A;D S+*@<% H?[&K8@NXZ+$@\(?@ .<8+2#F94@<*:J%[P
MH<JI'@6=:IKBM5L/?@N?ZP]>FO*;>^P4HD<D@GEP:M]9:R+UR*8!.Y+H,E6L
M-&G,:1[C@8=782)@J0;C%7TKJ\J"5+!6L9J<2086B)YUJY2+4Y$'K']9A*'0
M!V&BC9TLOXY Q=-#OA&@]=9C-H)LH3?N!C2G$P;#D7VB6!6E6A0>,]@GD7(G
MY_9IRR8PK12L*>_+>MZ7=4NH8:!>>RNC6?>/'YSV^>.F3;,^/?G:63^K\B;?
M:QYM)"$X:CBCW^P.B27H?_<;\E*Q6HRSA&;V9@@SP^=:RT1:Y_71X<(K=8W_
M^S9X%R63BJL,D7^N_3J[%K_.-<]#C[/]0Q OL"92NQ:C'AR'^SR*D][IR\>X
M<"3HX-LP Q8UL9&P,B+-!8Y/BR@6_P/%XJS*2:^H=([2>ZK%(OFD=9%XDR75
M@G; 7:]8O*1C**<Q^=J]7.?V]+9>A;-7C'TEPO/2$9Z&P7\20I/E$8\K"K"*
MUA*S/[Z'60KB%GRXWQ_ZG-$FL]U70W).3WIOOB9$ ?P=%Z[B%KY$ Q[\-L5L
M'P7]$1PH._^VN12\!7X.#MX\.?/>E*<FM6ZZ)NK2&_I!EWZOKW_H!<8CQ3K?
M>"J%OF0Y1.163*("TX%X7$IQ V]=BU%T&?J2P<\*K 959K=I&'Q6=U@3#%Y-
M M;X*CCC4LAP_0:V;4%]4=;\C98PB3NPB4KT:5[T>\=FE?1\6FJ#%&6)GKB=
M(9A)$QZ#Q9EP%*T])==U9M<>UD,>P,YYA*?Y"-USKE?&'=".,'YN#(O30L2-
M5F63207'8[+2-C'OJ[I#ZQ2>_X0I#OCGY(O>Q;;MAI]!$LXC&I:7P!Q8L(CU
MXV$LW\SF3> 4@KD'Y)E$RQB\?S#TT K@">FJ=5@#G)4IL8'>0#U^:&-:MUF5
M,./@AD]*?F^I(@P7<#W\K"I!3.H)AH'EN5N@69#$7Y"(\^@&N(#B"S:> &[-
M$8HDD[AFMQ;]CF 6%R!*C&L.>XLL)E7K:(,GJN3"\^5\5:#8@>G84GUW/;W@
MQSN=Q<&_U1D*M8!W%.H?L+8B;[CA*H>CX$^1#HMYAV6])/),TM'Q8U2LYWT,
MS]>K;3:G?6'I:_T7 R<^B\+C]"N%X1]SD("W:%XBB:;"R;@9^'V>@/E;4^"$
MS6V&45&<6%DRB^]PNDKA.#"'E*>.##NIBA+8*><P"?VTJ)(R/J)-N+@,<DQ2
M^/*&W5LG;@GR&W1>M(!36=*SY*+!9DQ@GW+V--TX6N-X&Q>89TJ_BIJPLIM#
M7(66&PVAX;@-^L/(<'CJ3#"YOD]-<4Q]&281FD(I"2YO-Q$+0G+".M>.**"(
M)!QT=X2&J**6%G2.@>VK%-GWBRKUH;*/^\>FP P1*F7<*Y((;LS/[(=6!K0*
M\P%6,2 +83]53!NMOP<;G\,2CJ9JF60KY)),1U6K0G56VM=9:3]9K_57Z[4:
M.\T/#HAP:/=T-=N34#LY?XQ0"X,I*NTB0>+HF"SZU WAUI1!&&AR^<<:$R3L
MM#1"F7_BFTK64@J;H17?QHMLU"9NFFZ]X)TCE,V$CUI7BI$8$#/HUMBYZJ];
MR7Q:F^OY5TAF&T1K.G-B)4SQFV]<'<C'J!;7FX(.SE'-ZC"AIWY>''_5M$AA
M4!*N=0\HA8%A]"5\/IY0Y(() \=!;#:2QV920-\_P20!R0=BFZ2KC<JO">OW
M=+B(0V+XV2*^@W&IWX/8&"$I&S9WUHV8(;!.*=[F!-:0T"8V'BPP5J]C=Q&P
M:&.X46];>>>@Z\8U.#F(;ES[EO? #;CB+&((EDP*IG-"8N=BBEE,]+\H.?GJ
MZN=_CQ;+[R]>@P7/"8@#R/I0ZA]D(G(A<!-AS;S(!%IC>N4F\_(8Y\ 8^!BS
M.Y.,_!DX%K4A'E:L-K@^S9($;325+XKU4W,,ZA<C1].^>O/FY>O'3-VF0*9L
M&4H6>0Y.ZH3,<^0/;;*B&H*A;1RAJ*?),89"XATL'=66]\!OC.-4)ZMDN&@R
MR2N$4J,U"<O"#/.-\L<#BV<*HCX' 0_3%97OQ#>)5 4,R_X!NBTP$R=A(2JX
MMBO:F<^5YW)8?P ?1H4!7TTK/##8.2U<-TL<&CY9D*,-<X-_!X.ZC.Z4N JL
MP-".Q@!%45*XI;#Y[D;HP0'HW$-)@YMI91-<></V,/XWYA;+U1%W9Z[1V+,[
MANN!,&LX>;]%!@K,]PHLHTELJ7NQ0 @3<_,!B,7&^B)G?0TTU'$3X;0&#&7M
M_,?((9$^"*V854GBV&I3=WYCA<+%#QPZ;GJ9Y2L^993.B/,"6R92B"'3QK3K
MGQ\.EW[@.!ALSB7!B0Z ,>V2!"&%-'UQVA1"CXW;@7]W_-4"3,=>.,_ :!]T
M/'(P(42&2T@<S"=T@W(5ZE.#<_?T/S!F!'Q:$! R EY\U1^>@**V\#2S9B.]
M7_6/!R]?AX0+DS1-% P&)VZ^(JMME4S>_><!\/BEQB^*44K2ROQX,'Q_^8A(
MPZUR#0;9 9.;F2&KVV-24^(-=/ #"!J3WJ/@3&5"_?6$<"V7NQ:^:N,<)@AA
MHLMLCJYLE+G=6)NT!7[:=\HW-WG>LE^B.Q#T4\*D& V5\C'&[4FR*+40YEL4
M!)B3\5Z8JG&+6=^"K6;M1&,0^A:_1Q6#&&,U]V)0W"5#^_.>&S(LS"LA'&]I
MMBMTZF8>( D7(\/BB!(P&3#!R=[GX#&&7^@)6#E_)<LM8/(P].;[2CG^C["2
M=DA8P@-E$HJ7Z<PET&C.N+J'#ZEA--%?UI;B@WBZ[H1:$PN=&!=4>/#6]F_J
M@"3Y!4:J0%L#25UCV(I-80SV#FMY(1-4\.AM-3T7,4ALH)4/'7 YF4Y.@"#$
MXXS3.D,. J\ZJ7#H D23"CUVC-S/H&;I]T;UKQR?-K_R7'A6^A+_<OF/WR_?
M7W[^G^#BM_?!NXN/EY\O?@D^_7CUX?=/[WZ\\OL7[^UJ/S@JN@"^FW 511+_
MLXJGA* H_2[=%%8A!D7AR24.$G  K41!&Y&H80"VP!3#+7DT54<3S$:4H8[H
M*WEQEF2WVEPP)\%BSMA_]5$LIW[0@Q(@I8>+FU68Q[#)!\I#)PG^JS%,0 M,
M$RXS FT0<3K5,15BS,E'B/$NI#9@HN"_#)=?5>,_Y=OC*/W"D[S!LI%;3$JO
M.$FL[E0^B<FR)7V<3PF?HB*">HB]TK!1\*-&JA#@)LLY#%>P30%4H>?&JZ!:
M"@#KV*D.6F62N'HQ.';_0)_!RQAJ5*UC@#'!@IX[GO(B9$OI1O&2]$88?$RN
MXL6XR@N)V3D[[-LRYN:%BM#U9#42(V&2I"1]C1X]K7@AK100-",#ZI*,^G@P
M Q\Y(V4?B/[Y@F-1CHF&PW^[H8H1+EW30Q^&Y+HH*&]6%86^;H,H5\ C^(.+
MZHA@!_BHP.Y1*)0XCB$>Q*Q\<N ]JH:J%O E]05.GP6)7EP>P<D;)Q)AK'!#
M$2K",=:"/.J$.4CO[_N&KX&G?4GY8J9WEK -OL#+*^PD$(6UA%'(_Z8T!]O-
M%([&ZS-H8%JN8!JB1P ]&)R%54ARL0F8R;-9/(G),:%9&3!ZAO>1*$HN";?A
MA,?J.DIKD"4?>-$2F_K<0.N A$D( C;H#T-L\U]@FE4A7J=LN$;]XQ/OF2PK
M]:+=40WRS)9TR425X\;D!#'S9($][G%Z ^=7-03PT"U-K*\X).FKW;,()9!C
M%=<%G5$@HC1J@N@AE]D(-#\5C?!-ZRU'-Q'(#4H+RE<;TW EYAL7S:4CCZZ'
M*+@V#P2)/^ D]?P_I+"IL%<G+J#3_4A-,(M3 C-#5(DVU#!PNM+A6W(!5;[@
M&<ON+E"1(,79EIP%_RM**U3F-/#PV"L&Q@@L?&\9,3R!,$0WK/D7ZA:7*B!@
MV9,(51]J:!V)$N\'>2CD&9AO@B,\B9>2?31/RE!T4&M,-!J>$1O;;01.NJBN
ML;C3/2U_X$DK8_QXJ;4P@5%(QS=1;,X11KM[-BL4TXL<>QTR-N<:0].TJQIF
M3X]IW$>C?EIGR.0D-9%WB,IH16#1;H]Q&M-XHMT">D37E!K>GY'WGF/A(K$M
M9>0$_"4Q%9A^FQQP@*=LA'! PJL#HXB\11Q17S,=AL$_@];I[499S:%C)DX[
MS,26.CG4SS7ASM*52;FRF,&%LO%/8B8*T%Q! +B6-20"WQR#6K)2E?+[CO!B
M<P7E. <,Z02[WY?6$)%K*(M>CMBUX!>ITIL5$DN'912SED4;[F@(*F!%!QS4
M=A83?!A$U)P^!^(\54IG&\"M*6O2KS1V/0M69P'V1C-$[Q=D'%HK*<_ 9$2,
M,OM;DOVFKYL$B^39I0[342(X;%7&^!=>F7P.AZ%B?YHYZ78R2TMKU;!KP/J_
M,>4Y0G Q+5\4HB>PZB U@Q_IJ@,=(G5V%LU! D@7'.'S(WYB01@'4V]:O%C
M]K)J,[T^;(18KPO!PW)1'%E8L'[@&QT@8G^91?+P^&AT(B2%,5=+ N;[3+;W
M[@K:*WYP ?3N>]C2Q1C8=MCGJZ)"':E'0S%LQAL8SP(676S#"AC7&KGH"'SH
MA=O. ZM5BJ7. )IF""6W]D-S"OP)SZW6*EU0[F@6@CM+SDF$AA!XG(SD-FP5
M%11W0%\3+:-K[!A1-E(4=,9=LR.7[AY\LZ'+6O!AX.F8Q+4]VGB*"K9I<J59
M1"0;?O<PW%L=F"/,&_P>@PR*Z.QRV HW#P'K.K(O"NP@PG0^(,"&Q]X>0$S]
M'9Y7<< )]]8:!Z1X]_"LF>^_UT7TX]Y5H0/>7Y<QA8,X@7-V32'PR:.G:S-1
M4<E%F=J:IUIXAX7=#(*MX,Q2JTHN+H\:93@NEKR6$9W%" K'5BE<1%SH-A5N
MPM"\K[T="MAYDVE]/-6E)BJ=MC>6(E%D5+6$#JE*#JP);-. EHLM-VK7D\UO
MH#1<J9)T@6A.1VT>AI3[:.&;.3NZ%#DP/&:"YFL2Z;?4Z>?%P*]!LQ05U53@
M[G%E@,\]\.[0R6VYY1H8#DH)D*5SIJ141_Z9G$4W64Z,OC P3F0^4E?.62G
M+V?62^)H;-J88&Y*IV9)FFM/':;EI%?M<33E8]KVM$!1_+M8@=@9*B:<--E3
M5:H+'Z>FFDU7#M< %>YA4,2XSM1Y5?Q#Z!QX4^9HE;%@3<$"X$XJ^+E%7%E?
MX1VMB29=<Q%"N_5<DE(G8C"M3!%M"PK6$S^-_+BM"ED'\)!83R$)0WRI,0.S
M49(C,)E/+]@F97VV_ V$@0EQ:+150U Y<A4!P=2U!AB=@BWP(D6HV850,? 8
M!9X3TSZ!M]-FM#!GPGT+,"\5<%X*S6X)?NETV$+!#E Q3,P5-B7=/FTGTPO^
MGMUBF#LT(!K>2BZS6V9BJ5%>0YF:&@Y<H\THM308F,TU?W"1-/*/NP.61UDH
M7^?4,:5TQ7!$;8UB[,U =B &#5&DZIHAUY-C5X="4BR=IV!0DT/F[(D3."4+
M4ZC))8>B8:3H>0VUV"E$5%O@MR,3?C4V/\=?"9T$6SR1DT"5;^M:6'CH>">C
M_0@(X0V0;GT._&&38+\U# /O,+)_>+;D'T[2XL7@Q$\4DTX1XCK58ZIY%;4C
M).7Y<14G4W#:M!V%4Y*D2TM#KA4Q-59<R!%W,?^%CL522T,TN41A"(>SRI20
M@,*D=4Z^OYL@TZ7P3JT&/FWQHTYRKFXWVJG$I@R1QTNY1X2K_60OR>ZE'@A:
M^ST3, B<B)^,I#NLLW+99C^&G/M!>:Z4U()6.E'O:G+C ?FY-CEFH4Z\8!G3
MT*ENK0K=,D.:SJ'*@7-481:JI)IW='G4@FK1J3^+P!3E]#IXD5D+84B8GUEA
MOI;9/0278W ^#,W[FNGKX?E_/CNV"D&KI"R9^@<BQ KCEDH %S9N#/\ !6J^
MB6_8ZR3 M"C+1,F-$D&UE BEEN]4R6UB8SQ'BI3@@_R?V9(FHJ$JU.<IX:(O
M0F(@#V3Y3*%%4._V2],N:DDW[OG UE@9W079&/C.EJ.P0^.-B;L]46S<WI*E
M1:S2&ILG2NG *9H_LC&VSS""[_3._Y:ERINL0SNQ,, I28\D<M? -9>Z VF:
M"<3'X.'&U0J[[=N@-9R*!&L G-"<V4F/?)9N.]7&[M#S;6==OFW+<=N?&#IS
MJ&%:1%,:'P=D@:Z-J"A&4"V6(E?H?@[VH\GQFI@VL@[P,E>VBL"M*KV.\BD#
M(&@O6^X>,F..V1@E!Q3],Q?BB6H=/W.+LC:E E;'H>4(A'P9@008>UL@'$D7
M2$W*R*G^J'3O6GQ6.CIXY; ]W:(NK)7)X@L2SL$OR:IPZ))*%*;8$R);LE5,
MN$KI#^=__2+5R=Q")]Z\;S>F;74^5@6T.Z0XOA.G3;S!3;,*0S/=[DO#%JGO
MN#C.9?1%*X8%&0RL"?((M1^G$RE],ZTFJE8X9GIZD;SVO'#S$&\ *RXV4/A#
MM8\0)=6U;G+MK";G79J9;LC<=4K'?'7( ,PZ#./E=?Z2=L@<G&G]A+\Y"[EJ
MRY^$#5L+%AYK117SJ=@U9M>I3PTMD^F)&YSNN6ONHK$=24 8.?:^A*GX-*"(
MT ;Z;99_X?@P/TAVJ+;M/8"B6TX$[N4-!>K,MC8">[4BAG61'A(^]4B?--"1
M*3)&SQC.5 .E;6<V(WWCF6W4NG6*S'>?<8N9'C*8M>U:MT:=<#-WLV[!O_.!
MQ-BB%GF/((>NRO?*BEBFX=<$MZH+K]?29!VPS;H[!G313/PL,S0H\ 1YJ>NO
M@YX[ 4\) 6BH<+/!(87X$@P+/ *87[3 [V>9-I$IXKTL==M8#X'?,MUF2#.>
M6:4HXB.SBLN5_J%&>L28!9 F5$:44&LJ::IR[315B?RF*J:@E]JOE509-)G3
M=+@Z6,O'6EJ?]\,I?Z"J&X,_(?E(ZD*'/HM2+6VW=J(*6!.ZB@WIP?T>6%V.
M2T>/.P%^RI&8WJJL*/G+6K_KG C[G.HF)M"-D=7F[=2>!B*"J7;0*L^]Z4).
M2DR@QD*I+P(U)QVA!*=-;?:<VSMP)?X;T:3Q:?TP10ETE-C6%5@>S7*#UR1P
MAT4_[KF^<$WK#[/9T=\$1GPU1X:_R$FI\\$[)#/[ZY%#*2&!CS3,NJ#]B9S]
M.2!&>)?'U)8PN&!5CF?_([C)$ZVG/\*C\ >)-!\28WRF8(U-+0+9C?#2226Q
M8R9ZER*[2TMWEZR'$F'W.<(CE"9_<,'9ND^*K]20="_5UG ^H<&+O'I'CYE&
MW-;J+4 ]:=L.[QB)BTF2D:_0"ZZ4Y%8OX9&@#_Z4>>W*OD85MV #!'T^\104
MZW^//P<N:*J%-^AYQ[_\I#!RXCWI,<ZFCLSSCEF]Z6)6VY2GU"166"$JHVMS
MDR.<S642K=Z"0$#CY;L@GO[7=Y?#[WZ@XSGL!?^HL&REC 0 /<4?$OW?[^W)
MQDJ]JL2[F##^_"DNOO1,S]F#$,KH8J%5*B@2ZHMCP:^V<,AIS. 71]6+54-3
MFG03@6AG](F'*J?"&]W"5+IK8!E<%%/VM']$J=_@ZL-/GX)75Q0:FP8?P&!.
M\2 $-N/W"=Y_[0#+07:BH0PZH\H9D2M-5DW?#0MZSV5LA*)H< P9Z/SO9):.
M5P'574T5%F3J@?Z^6F*DB/037L06&_20?%.QXZ];6I2W<"!71S,<E?$CRRQ&
M;? *MA$V[.5KW00#AN3NO)2<T.$!_JIVDX&T=UC]JY(;J1EC=XD[V$M%-85_
M-**IUJW&+5[V%NP"KD-J!^R7A)T<8T&3:2V[X @/RD+XJ^Y!VY*N#QE= N/3
MD9)^_[HUA[A,[4PG425"7_NO<7>T-[76[BYC[KG-^'EN>%3I*@0I46GI-%.O
MAB,&T+$BBU5CO!F:*29V[1P\.G!<(,C;7+@,(N F_^FUYT?"21R<<GKQ<-S)
M]%**B@:#VHL/BXH]XV#NG+C&%39ZE3R(FHJ$.O9J"Z+@[ W5 5D!(.GB5U(@
M1#4;.I#1MG6F:-<+^RRQ!(0@*+84"-/(%?^*U7Q4)>*][3XKM2-<^%D$5?$Z
MK*]XC0!IW_<V(DG &X,NIM2FY547!NG3I"X<FO6B_6.J%ST07,E?M"]&8E^,
M>F2'Y5EB7+J)FI*C<%C& T67@%FPSX1UAQ@/J1>_-(L'3I-N!X@/D)I^9+V,
M"VG--882+TS!<5LP,,&])1:K='DLAH,PF!+;3R9\6T)1C1=Q23=@$8@=#A)O
MQ8]WDFZZX"A;_WPXHAAIM&"]]4J0&WATY5_==P3&\9J_%MLFLGP'&0:[IGC#
MY +1:5A.Q[5/.#UE:@$EYF?[8>#! L?/8EO(Y+&!>S.#=]EB$1<%[(>MA*QT
M^UW<JT+#CZN%7 '&@?_%HDIM53-=(6(N,G!;F.%?WLUC-8,Q80XD)C\@=$0:
M0/#?K&<K?R-;B7OP%OB_.!5N.<\=0<R5EKS7*#A Q4N!H60#8$,05 \[45"0
MUSJZAO2NO[W?QT8:;=!=-2D&14"8)[!9)OR-]QHSB) K1D$:4[26SQ7;@FXV
M3M#$H814T!";PZY2Z'^J9IB$"$T<>4F9XY)%?XGF(G*5"5*0@:?CN*8AD$[*
MXLP4*M](XXR,1J7(,&63O'8O:'(4MAL/V07@1DE-K984.+FQ$HBPP3O#+Y&4
M!4TL_AY>XMDYH7DV$]%,UW?))C&)$B?W(N$C 6^+3,*!<1L03P9#[CEG?:B=
M;;MZ I]CEP8AVT-GW?Z]Y;PC!:H)"QB''>A\BS7J5!^9)I+ MAHA3L(3V38T
M+WA\)#-\6*G0F)1\H4II:A%!# ^<TI3Z_,LGD)I!?Q@=]4]>@0,9_,VV@T1'
MQ5G/O[!+'.B$64L;=&13O4$U_^@K5FH7%_BK",GO%,V4FLWD'^2 M.I:SBWK
MAIM.'1>W-\'TZ30VR@3V1N*B?@VY?DRXRTE+W:KHB[ZQ]]&23'I)@X&0EIYN
MO"^&R_M33/)XC&RF0+$<B#VJ%C_\JO?S#]G/ \ XO[=U4=3D7XL"/WP/'/43
M6!0PX-'_?E0LG^(A#NNL849J^OAHAN3+ILVUG6L.&ENXI(*D_9IS911V>H*]
ML<=[0JYL [5;A]2V92#\_M33/RM& 1@HD'3 XG2U3;F8C1 [D([-@^F.E@9A
MZ+WR6&W;6*S?1U,+%YDB.'UGIY!L%;:8*)P01\.!!*A9AV>Z$.%)F2](2')/
MC)0[^L!&RS+^=6YH[;\!T\,F/V2Q&#6HOX1R&Q'89($0>9SZXR"MB(%I8<3Z
MVITP4T/=(."2"5W<[8-+0,,EB=(&$E^# 5\NT"*ZCF3CR:-P&DHS2Q/4K%@@
MI@.O::M%C[C?&UH/YLXL%SZ@R2T(Q?T61Y\)2;^(/+5GUBCEZBG= X=ML%)]
M;V&UY/9>N;W[@)'F9GO8/A$[E<&CQA<F,T+P#T[3>[[*D%ZT6M:@DG@&8Z6-
M%:V=@:])Y!'CUOM&P?,$<7$/R7HFY3:6MK%=\]206#$[1O+%6@M.JS@#C+2;
MNG941ZJU#FK;WRVH%%*DK(=BT@U]&T))7^A'MD7;A6@("B9<F8OO<0N_0KF<
M0%<[-J6[(_HCM+<89$=ON9(I@V]<8W8 N)!GB:&VG&</QEE<E*XN".@6VMS9
M;N8?C1R:9N#S*SZNDL&F)==O5> KPC&.4$HT@+]*II[[$;';:3A)^S@TH^#F
MHL <1&&Z\Q!KFT/1PM+,T?9IKMR@*3D5*FP)* P.F5 0>X>RQ11CD:\09)>=
M..+]5<TLM0>FMH##, S_X(B^3U )R''HG,.,3<VFTIL8_F*$ND':X6L& NT&
M[*@WK$K)0W%]=__\MMUPWCC$2O?LM:X%LA'&ZFUA]IXKD]^R$C6S26JUBU#K
MKDA'6$>@S*D_D>L^:@Z>8DQ^^@B82NS=P06'[1^FIKUI7/_#&-?E/%=*LK $
M$H_OY+]T4*>]*A=,-&SO',4YY46IOLHN6E((TD'=SA<(+K$FC0M%$\3B;TT3
M4BXNY  0Q1BI;R/,ZN>+BX][SBXZY>"TF;C49_:=:XW:.,,G;8T>2#*!X6%D
M&Z>9&^_[.D?M5=0, ;FADMGK^]("KT6O3"C[/G5;=SR0XH[XQ#9*)U!=973K
MB F_K/1M\676?#[\RO5B.<^R]&,?)$QL(K4I9AXVHBCVA.:0-H,>8V*MGR5Z
M)3H@3+<TW!,8M(TW\J:08KN8VTH;:\2+6Y$ARA:-T6J<&++&,M7$6!-86R^-
MFZ<<%=4NP-TP VUZ![O; .SNO(/=[4]:_./@NQ\^7GSZ'%Q>!D?!A\]___%3
M</G;3Q\^_7KQ^?+#;X>5$?^KT(&!0 <&O>#W-%?7,=Y9!T+EBNY7!0[[D6M(
M:KGAWSDY]E$:0NPUO, _^KV3.%V'B[)%22(&%5\=2P!P"QI@Z":5Q9F6 A3=
MLE SJ6R3F!?Z4:;OPN,T_]N=D/?U5Y],_K=+<2N_L3T^8I9D,N.L++,%'@NS
M0SBU(PPTTOQHID>S:!$GJ[?UN2ZB_#I.WQ[3X,+0OTI'^X]L.C@9!'%M@A^1
M2&L.P+\XN$=Y?P@2]W:#;N=QJ8A ZBT8)K=YM/P6N^ PA!Y0:^0I4O.[!PG$
M]#]_N892+=H6>^2B4/FO[P;??7M.-SI=[_%GNHWOBL[ETXJQQM ?14I,[R7M
MQXOW[R]_^]G=V^\W1^Z.O_Y%(E\P*GO3K(4-=*BQZH8'QGOBZ#!U/'VX/+T+
M,C.(-CXTZ/L-#XFF=C5.XDFRVO#(%RG7]DV#C]BXICO-AWN:+RRR?L-,]AYO
M0\@WS=E\7T,VV_"X+"Z#_U&;%B*?LPT/^+>-6SOMAO23C_L[QO4WO=9=%L?K
M0YK?8V_$:^IT=@3B+<O?_MMDHM1LYOGY-1%99M]DEA?+/$Z"OJ0-I08^X%^M
M=]VB4CAV\7(+RFSS(XM6F\T\K?9XY94CJ6%N)^'Y\'@'UK,[([=O7?M\7GQS
M>ISV3DYV<%.>P\C?BH1'.["6YSCRP=#OJ]3RC/YO VKYUVC5:VAEO!U9</6=
M3OY6##@8AF>GISNPH-T9>;M*N3_JC48[N"O/8>0':'AHRWV.(S\G$N^FRTV9
MZ[INKZ6SM[]WCP 8[ SW?H/XLG$)S\/1\=FCPD;/26H\FA6^I>WP#<DZ..OU
M&T9%1]5=U4+[XSX^TY$/AGZ[Z?X3B&!'2/T<K8#S\[!_/.STQ:%9 8/>FT:H
MIZ/JKFJ10UON<QSY.9'XL"J,7D6O@XLD<6Y 89 .][.92"- ZOT+),XF,?5U
MP0O4HC(NL/H_NJ.28+RJTVD>R$6+C[I],Z/6)VI9VM[$_C685"7MC"Y_I6H2
MY\)._XI+<Y-E8&^RG&ZNC^&SKA;4\(>N6G O*N$^GTHIW&DO^/%N'H]C[$FY
MI<*VAP^.(\/_\FEY7&28/_^F87M^(__/,&M9%/'_57?#?K\W+Q=P?OJ]_G\P
MJZ[3=X,GUJH;7O$[' ZO8M&=8SY?787!93KIK6T&N:QRO/.+6IQ><;_48'@\
MT&UGKJ)\'*6J./IPEZB5[C\\.#X>]/R=_:NQ@:?8_?WXYFXF7)J\-3"G:= X
M38=P=@://#O-1JG=V>G.SKV\-=":: ":Z! /S^#;*I[SX]/N\'2'1WAK8 [/
MX# /S[?5/(\Z/"UG9_..VS-R3OK'_=[E;U?!?QR:#W))KF_P?_[VZ1=@5>Q+
M,E'!>VG$N>LI0Z3*U;N_^U39;QI\CNZR-%NL0-.6*L6[2(*KR5PMHEV7^TB+
M=Q>_'#@MWD7)!*^VP7__)4Z_X#5F^W!*WO_XTX%3YCVV7(R_!6$V>F1^N?C;
M@1/FEVBLDKTZ+!\__7C8)/G(G7*_B1C;X&D9[3=1WE%STH_8=)U:ZT;<(OQ]
M5$;@&H E_8I;QY7Z7DI+0[Y*@]IJ<S-E24R 0=]__4S\@!9S?_14YGZKF?\T
M0_U$MP9BZV',&_<Z8GY[8FZ2FE6>QL5\BQ0U:><N_2[I]WZ7?M]D^KW1H>0K
M$_!7ES]_]P/\X[>+S[]_^O%JGSO*-D?XZ 3\^ HD!Q^DHWZVQ>Y#%\:&\A%L
MUYM'<F?#M$I6? O4U+WH4*ZNE0LUP/##ZS_':AXE,^Y\KK@O/3\0\@4I%5XF
M1!^,JG*>T:VRNP,:^F::Z&E@@+9KUQ-'I'5C)XHW__:NU]H.:),)B!;U?G*\
M$>3C<#.CG&P&QODT,>5'TNUIF!7<'?4VN*BN\0*Q_CV='9YF^+^MWGX5O/]I
M9O&?Q7^"WY?&*@E^I>Q0L=CJ4=V/A.?3LV9'D=VBR)J\:4>9K5/FU<<\3O$^
M[Z1)GM<;H,\N!D8.V8D>;'7O_U,&G)>+Y(?_#U!+ P04    "  @1 M;Y) (
M9/<&  !7(0  #@   '1S<VE?97@S,3$N:'1M[5IM4]M&$/XK5SK)P(P-M@G3
MCNUXQH!(/), ,4XGZ9?.65I9UT@ZY4ZR<7]]GSW)+X!#2 MIZ^F'$*3;V]W;
M??;9/0W=*$_B7C<B&?2ZN<ICZN76JM_H^K#9W,=B]Z!\V_VA7C_5?I%0F@O?
MD,PI$(55Z41XIZ_ZP[?2YF3J]5[WH%0VUL%<V'P>T\N=D?=A5.^_&;PZ;XO?
M"YNK<-X19Q?GH[9H-K)<Y"HA*U*:":,3F>[TNMEB*TO5KP:_>J5HN:U^UG\[
M>/.Q?7MC1[SM#U\-8*6177=$3M=Y7<9JDK875G=ZS].QS3JB>Y#UQ*.;,6H2
MY3#2M;G1Z:3G?7@].!Z,Q&%SO]D]J%X^C>G;)WPT*\M_K1>\;\VD#RR063ON
MB3<<#<X&)_W1X.)<''\4E\/!^<G@LO]&>!^\D_>CP2^>N#B#A#=\_'!\@Z/O
MST^]H;CR3IRCAXT6O!*CUYZXZ@^/^^?>U=*[YS_^W&HV.XN-%Q_>>!]%_V3$
M&UJ-1NN_FM4O6!G4Q*DT9A['PML7IS23:4WX9'A9Y)',V]MQSN:^&(A(3DD8
MFBJ:@<SR2%GQKI &4(GG8DB9-KG0J3C3)H'9^CNA0S&ZNJJ)0>KO/[F+WR<0
MK7UQ+"V.CX,F<_$IU;.8@@G5RGB8,@J!9KT:S*_37*I4R'0NBC0W!<$S] +7
M%A >*1(\&25C$4H?KXS0B0+#ZU+NCD!*/EDKS9Q%$OF)8'=-I\6[ ,[ 9,S<
MRC98P%<&O0AB*;;#DX",F$7*CX0M^,=J_XP,54KX (FR,?H3]ZV9RB,<T&;D
M.P=9;P;7=(!C3K$M$./Y>ABV).6']Z2<1*A2!)7SLPIB#?F&.);-VKI*0U2&
MS!7TJ-2/BP ZD:BUB-609,75E"'.#!&&#KAEB8$J_/:6:< L4*RXQA)%# $D
M7B,[SIQU_OC21B*,]<PN4&%HHD#'$H8DORS]AI=KN;4+7^XXNR7I?;$O1C=B
MX5K83QU;);!B<ZX '88*CRY* R$-N7P@OFH<DXL; 03C6-F(Q5DL0?4S _!S
MH*P?:UM@'_."T7&9F,QHGP*\MF(7>0@(B2VC[5W[D4PG)/HHN6$10Z)Y*.O-
MHUW:<UN;1T'Y5#XJ[MMI"0C6+[@NUW!2)HY]>;"A\(:A$(86^%A'#R2X.VQ)
MM]N5>PB.Q4M$QQ'DUU-78^[V96$?OH5)=$PK2R4MZ\)  8IOJJRK:$A1ZO3P
M0+'B@G4^,11+E]>*EU>YJ55<PXL*O !?K(Y5X"XDMAA;%2AI%!] E=W#,5S*
MF@K+C.[*P#KZ=P2@+<$A7'/<I@P#@/*+6#)MX5C.B55GP(ZRSZRW1_PV)A8$
MM6 _!5M");OCV[AY<$'>@<_#2_G!* +RIBI@<$BK4\F<)2V Q4,!(T::8)$]
MX$G)L8I5/N=FL<DL8]DEVN6PA.$-T;6APE'C=76@K# 9,&1=<_-];0+G@!LO
M)I2B9\6 $E8H8XRR"$:G$B[ LLK 3ML"&']/T%3&A:M&CB:%(?J[FB(.=D.?
M7O:F![!+^;BY=SM\8".8P98#PE@7^9<]> C_R:4T\?03?GU %./%7.4@7T4"
M_G18^9:D.-A;1.]N%OA:4#5>M[(QU=_ !-P?M.\7AF.]1L8;M";:YGC/5WWH
MLCX4?2XO<V+W"UM"@ 8U>DNZ<AS3);D;#5]VTF+IUU[I523MLG-Q=3N04>!H
MS\6CHJ0Y[BV?**ZN-[?D:W\[1%L$K*._.K>Z:_P2DK55$3(GK,-B58^<V&]H
M97>&D*5K$H-(KHU==@_W BH3W'ISHGL8;ZS1GW@]4/#/*=D%>$ P0 [_Q]/0
M O#TN5#PWH&[2'UW"=K;HNF4+X7<[Q42RP,XC_*^(F2B(O[EE#@C^8F9O.RW
MCLO=I. ^-2PNB-^4WVJ@*Z\_&\I6!MAH:5FU7\1"-5]@"Q**,:!6MA.+7F*+
M),%4^@>YPU1LN?$JO445S>,C=X30H"IJ"#.Y0D:BW)>8*J.UDE!5.M7QE)A5
M4SFI/BB9JO8IR6(])ZS.(ET6O+R!%^3W45K._O>,?.Y&ULK2&( A4[>9].%'
MN]$)X6K= C)M9WFF@CS"KXUG.Z#".,YDP-/MRYW&#JLR"ST1\7>R=O,HNW8+
MP6*A5'#4>-:9,I.BY57.Y3KK[*P?^I9E]QC*1,7S]NT3 ]03E;8;;*Q?3'!,
MT6S61*O1.N(S=@_R8(,3AT_FP_&\O='N\<7PU!O6CR]&HXNWR&5V+=RML0KK
MX=&3>71@#^Y\4K\G-,W6LT<QN\*9,X0?YGZ8/+[-I].ZT/A$*;LW7?_GYA_-
MS26N9KCS5]_H3B)%H?"NR2_XAB<NRL'P_X3]>Q*V>UE^Y$"7O9.GO>^1*/S@
M/ON=NKK[NX?>GU!+ P04    "  @1 M;,=HO/.,&  !>'P  #@   '1S<VE?
M97@S,3(N:'1MW5EM;QHY$/XKOIQZ2B1(@#2Z$U DDI 6J4E:PDGM?3F9W5FP
MZEUO[5T(]^OO&>_R$D+3M)?T1#^4LNOQS'CFF6?&I#W)8MUI3TB&G7:F,DV=
MS#GU-]T>UQN'6&P?%6_;OU2KYR;(8THR$5B2&84B=RH9B][YZ^[@4KJ,;+7:
M:1\5RD8FG N7S36]VAOV/@RKW;?]UU=-H2G*6N+B^FK8%/5:FHE,Q>1$0C-A
M32R3O4X[7>QCJ>I-_Z]>(5ILJUYT+_MO/S8W-[;$97?PN@\3M?2V)3*ZS:I2
MJW'2]";W.K\E(Y>V1/LH[8@GMV'5>,)&VBZS)AEW>A_>]$_[0W%</VRTC\J7
MSV/ZSO&>S,3R7^,E[UNS%P "9-?.>M8;#/L7_;/NL']])4X_BG>#_M59_UWW
MK;CH7W7Q%=^N+R#1&SQ]++[!T3^OSGL#<=,[\XX>UQKP2@S?],1-=W#:O>K=
M++W[[=<_&O5Z:['Q^L/;WD?1/1ORAD:MMILIW6:B7Q'G,E&DQ>6A.)LH%U=$
M0#93T5QD$YDU=_V ]4/1%Q,Y)6%IJF@&VLIP3/$^EQ;HT',QH-383)A$7!@;
MPV;UO3"1&-[<5$0_"0Z?U[\?$(+&H3B5#@?'$>.Y^)28F:9P3)4B$K8X?VA8
MJ0&[FR23*A$RF8L\R6Q.< M\[ZD?@9$BQI-54HM(!GAEA8D5B-P4<O<$$@K(
M.6GG+!++3P2[:SH=WH5P!B8ULRC;8(% 6?0;B"78#D]"LF(V4<%$N)P_5OMG
M9*E4P@>(E=/H0=R;9BJ;X( NI< [R'I3N&9"''.*;:$8S=?#L//)/GX@V20B
ME2"<G)E5^"K(-,2Q;-?651*A&F2FH$<E@<Y#Z$2*UF)507H55U"*"#,X&#1:
MK[)?!MYMF ; 0L6**RR1:P@@Y09Y\>:<]R>0;B(B;69N@0=+8P76E3 D^67A
M-[RLK*75+9RYY^W.9_;EH1C>"8-O4K^W7)F[DK89]B:*%!Y]@/I"6O*I0&C5
M2!.'3!#R/]+*35B<Q6*4/)<]/X?*!=JX'/N8#*S114Y2:P(*\=J)?:0@).2T
MB'/O-IC(9$RBBSH;Y!H2]6-9K9_LTX'?6C\)BZ?B47%G3@HLL'[!Q;@&D2)E
M[,NC#45W#$4PQ.?<! XDN!GL?%O;EP<(B\,;Q,7SX=>35F&J#F3N'K^%.7-$
M*TL%"YO<0@$*;JJ<+V-(4>+U\,RP(H!U$K&DI<]H2<.KK%1*@N%%!3* +\YH
M%?H[ALM'3H5*6L4'4$6S\+26L*;<,8'[ G">[7W1&T=P"#<7ORE%IU=!KB5S
M%8[EG5@U NPHVLIZ-\2W$;$@Z 3[*=QY^M@?;2+FT45X#SB/+]]'XP>8FZJ0
M82&=223SE'2 %'=_QHJTX2)O0)*2(Z55-N?>L,TLH]BGV&>O . =T;7IP=/A
M;7F@-+<IT.-\+PL"8T/O@)\CQI2@16F ""N4,CI9!#-2 12@6*5@I-V'2G @
M:"IU[BN0XTA1A$:NIHB V]*0EYWH$8Q2/&[OT1X9V @V<,4D,#)Y]F4/'L-Y
M<BE-/.9$7Y\!Q6@Q0'FPEY& /RU6OO/)#0\6<;L??Y[YRP;K5[8F^1NJG[N!
M"8+<<I37J'>+UMBX#._YT@Y=+H"BS\4=3>Q_84L$N* N-Z1+QS% DK^N\$TF
MR9=^'11>3:1;]BFN: \O"CW5^7B4-#3'I>03Z?+NLB%?^<\A^BD@=?*]DZF_
MER_!6%D5'O/ .B!6-<@I_8;&=6_86+HF,7!DQKIEK_ OH#+&938C>H#E1@;=
MB-=#!?^\DGW !J0"S/!_//4LH$Z?<P7O/:SS)/ WG(.?8O[DNQ[W=864\G#-
M8WJ@"#DH:7XY!\Y(?F+>+OJJ9VX_$?C?#A;WOF_*;#FR%5>;+:4J0VQTM*S4
M+Z*@G".P!:E$NZ\4S<.A<[@\CC%W_D/^,"5#;KTA_Q15S ,B\W]D40D5!)A\
M\2)%_D>5,I>5@CY5,C5Z2LRAB1R7OPW9LMXI3K69$U9G$U,4N;R#%&3V21K,
MX0^+>>8GTM+,"#@A6W6I#.!$L]:*X&?5 2E-;W:FPFR"K[47>^ ^K5,9\O#Z
M:J^VQZKL0L^$^/>N9OTDO?4+X6*A4'!2>]&:,G6BNY6>929M[:V?>,.R?XQD
MK/2\N7E<8'FLDF:-C77S<0YVK=<KHE%KG/ 9VT=9N,6)XV?SX73>W&KW]'IP
MWAM43Z^'P^M+)#*]%?XZ6(;U^.39/#IR1YN_AC\0F7KCQ9-87<',&\*'?1@E
M*X>>WOKZ,9\IR@]%^'\)Y[,$<2=3@X10)"Z61'M=3&L;+/N=RO??%3=DZ+UG
MX>!'H  ?S.(_HF'X/W]W_@502P,$%     @ ($0+6_>+CB9]!   LA,   X
M  !T<W-I7V5X,S(Q+FAT;>U8;6_B1A#^*U.JG(B$P890W1D.R0$GYRJ!'#A5
MKE^JQ5[C5>VU;[T.T%_?69NW)%R:7.%ZE4Y*D-B=G6=>GGEV13>4<=3KAI3X
MO:YD,J(]F67L#[IH-8TZ;G8;Y6KW)TT;)%X>4R[!$Y1(ZD.>,3X#>W!IC:])
M)JG0M%ZW43J;)OX2,KF,Z/N*:]^YFG7E7 Y-B&@@.W Q&KHF&'HJ0;*89L#I
M'$02$U[I==/U.66E39S?[=*T/*9=6-?.U2?S\<$.7%OC2P<A]'31 4D74B,1
MFW&S@*STWO!IEG:@VTA[<' ,P6:A NEF4B1\UK/O/CCGC@NM9MWH-E:+QX%^
MD-[!(#;_S3-U;@?/0PI0L9-KWQZ[SH73MUQG-(31!=R,G6'?N;&NP+ZS^[>N
M\YN-RVAACP]?BU<$>CL<V&.8V/TBT'?Z+RI8]X,-$VM\;@WMB3:ZN[(_@=5W
MU4Y3UYM0-=[";7U2[]?!:+7UT_]E,_=!.!R\A'/J299PF#,9@@PI?,R)P*I%
M2QC3-!$2</,B$3%":A\A2$1A];FT LI]U(%?<TZAI=>P8LTV5)7!FY_?-IMZ
MI_11?#$ZIY $X$XF-7"X5W]D-V-85\(WMC4@&00L0O>;V";4RP63#/,DW =[
MX86$SRCTDSAF*%L8*OXI2Q_U"4(J*")^.1X,I 8#(L0RBL"NPX#.":_!C: 9
M\Y70*91^R&B 6(@MV3V%41 P#U-'S\KQ-O(:X+)DP;(&:2ZR')= )K#ESV15
M:\6C(CWB)ZG2T5WSM9%BYPIB0L24<)IIHT5$EV!Y4NTH=M9PGR PGHN7\"=/
MYEBO&36_&3<EF49T#3--A(]W0)82#^\%4^\\/ALD7)K[1+\S9[X,<4L_J6 5
MHR@EOH\^WE?TBD(1:XB0*ITUC7:Z*#;\]4;IX.RD4]E-/"9BQKBI*^MMV'BG
M^?L/WZL&>B1:!2V3],O^JL;I7F>O\>$6!"K&+,@CG#DOB=-(\7O#>4$_YTQ0
M=>]FJNU;$E4)#I0 HUWU3S=4V4[(9CI6?#'>M<Y*UL7%U'84NS<9X(=XOM*O
MJ.M^TY(.C*O),ENO._O$]*#Q?DWKJLW#M)]QU-28%#U%/9:$<50$QE?B4G*#
M,"7(*>J2HD%-;1.4+#Q&!2,1DB1+D1=9K3@5,$ZXI];1H<\*UTK)T"J/2A8E
M*14%9O94Q^H/BXP?:L@WSZ<CJ8H%&7[#U!-\2F$"41D8PU% 0DO*$1;3+=Z?
MJYGP8;I\H)<ALGM*T305R3U3-Q,*X\/DBD+,&19OJF9K56[TL\<LR 5G6;AU
M\Y+[1P##$F.L00!YBBLJ6)J55?T.-%EIL):QOV@AQ(<2WK;^S^+Y"+GX&I"8
M14OS<;J[0S+ KIM@Y;,\DV 8Y2/C&1EO'2V2\Z6Y%_=\-,9WI78^<MW1-;83
MWZ)9$C%_5=Q6^V@1-;+&D_?+,Z4QFB<'@?U76GP8S.-Y?:F0?S6=GVG7C][\
MI[UYT</_1\.^GX95;P3#ETZ*KX4G?3K]%HU:/XZ.]X/2#JKZ2:WW-U!+ P04
M    "  @1 M;TQ0128D$  #)%   #@   '1S<VE?97@S,C(N:'1M[5AM;]I(
M$/XK<YQ2$0F#,>'4&HKD$$A]2B %5TKORVFQUWAU]MK=73=PO_YF;5X22I*F
M![V>5"GAQ3LSS^S,L\]LTHU4$O>Z$25!KZN8BFE/2<G^I(N69=5QL=LHGW9_
M,8R+U,\3RA7X@A)% \@EXW,87%PZDVLB%16&T>LVRF"S-%B"5,N8OJUX@UO/
M<*[<RY$-,0U5!X;CD6=#T\P4*)90"9S>@4@3PBN];K;VTU;&U/UC4)J6;L;0
MN7:O/MJ[CAVX=B:7+D*8V:(#BBZ406(VYW8!6>F]XC.9=:#;R'IP< S!YI$&
MZ4HE4C[O#6[?N>>N!RVK;G4;JX?'@7ZPO8-!;'ZM,^UW#\]'"E!Q;Z_]P<1S
MAV[?\=SQ",9#N)FXH[Y[XUS!T!TY^!$_C8=H,9@<OA8O2/3#Z&(P@>F@7R3Z
MQOQ-)^N]&\#4F9P[H\'4&-]>#3Z"T_?TBF6:%E2;K^%#?5KOUZ'9:ING_\MF
M[H-P.?@IY]17+.5PQU0$*J+P/B<"JQ8O84*S5"C Q6$J$H0TWD.8BL+J4VD%
ME >H [_GG$++K&'%K#94M<&K7U];EMDI8Q1?FIU32$/PIM,:N-RO[]C-&=:5
M\(UM#8B$D,48?I/;E/JY8(KA/@D/8+#P(\+G%/IIDC"4+4P5?[1E@/H$$144
M$1_/!Q.IP07AC,9P78=^Q&12TV\TA"'CA/N,Q# .0^;C7C&4CK1-M0;X6+%P
M68,L%S+'1Z!2V!)FNBJN)DZQ'Q*DF1;.^^9K(TW'%<24B!GA5!KC14R7X/A*
MKV@ZUG"=(##Z)4OXBZ=W6* YM;\;&169Q70-,TM%@*(O,^+C(+#-SJYOF')E
M[U/YSAT+5(1+YDD%JQC'&0D"C/&V8E8TBEA#1%0+J]UL9XMB(5@OE '.3CJ5
M^QM/B)@S;IO:>ILV#K%@O_-GW4"?Q*ND59H]'J_:/-T;[+D8SU37*SA5'+4P
MC_'<^6F2Q9KC&]X+^BEG@NK9*S43MKRJ$CQ4 IKM:G"Z8<_VE&Q.R(I"S3>M
MLY*(27%R._H<;3:%+^+IXK]@6WNJ_ZAW<3]P49SUI:!U@(#/>A][JP?B1M4Z
M&N481RU/2,$CG .*,(["Q/A*XTH^$J8'02:HU-2KZ642QX!N5&AIQ(4,N2AK
MA5>XD4P,&+ BM-9IM,KCDKEI1D6!*;^4T_HW=N>9,[_?M)0JAH< %:KU,M_]
M;,(7K8V;:^:1Q-@!B=^P52E>.;'@<5E(AG*!AUY1CK#8GN*>OM*- &;+!V,F
M0@68433-1/J9Z0F.\^1A,XK&W3%L]DSKSXH>&&>/69@+SF2T#?,U<UH 0TI@
MKF$(>89/=+)4EBSX 4:9'EV&9'_38GX=:EZUS>=GS@YR\34D"8N7]NYV[W/R
M KMN@Y//<ZF@V2PO8T],O];1,CE?VGMQS\<3O'\;YV//&U]C._'.+M.8!:OB
MMMI'RZ@A&[OWO"<JT[1.#H+ZKV;.83"/%_5K1]$WL_GQ;OULS7_:FD?^/OK9
MHA^G1=4;P; Y&7;GBSZ=?H]&K2]#WV&0%_]I[/T#4$L! A0#%     @ ($0+
M6\>\.; W#P  T*,  !$              ( !     '1S<VDM,C R-3 V,S N
M>'-D4$L! A0#%     @ ($0+6R)YL.@M#@  Z;(  !4              ( !
M9@\  '1S<VDM,C R-3 V,S!?8V%L+GAM;%!+ 0(4 Q0    ( "!$"UOA!(G!
MXQ8  +UA 0 5              "  <8=  !T<W-I+3(P,C4P-C,P7V1E9BYX
M;6Q02P$"% ,4    "  @1 M;!.RM^LM/  !![0, %0              @ '<
M-   ='-S:2TR,#(U,#8S,%]L86(N>&UL4$L! A0#%     @ ($0+6PF6?A9>
M/   ]S\# !4              ( !VH0  '1S<VDM,C R-3 V,S!?<')E+GAM
M;%!+ 0(4 Q0    ( "!$"UNA1N"K3"P! )79$  ,              "  6O!
M  !T<W-I7S$P<2YH=&U02P$"% ,4    "  @1 M;Y) (9/<&  !7(0  #@
M            @ 'A[0$ ='-S:5]E>#,Q,2YH=&U02P$"% ,4    "  @1 M;
M,=HO/.,&  !>'P  #@              @ $$]0$ ='-S:5]E>#,Q,BYH=&U0
M2P$"% ,4    "  @1 M;]XN.)GT$  "R$P  #@              @ $3_ $
M='-S:5]E>#,R,2YH=&U02P$"% ,4    "  @1 M;TQ0128D$  #)%   #@
M            @ &\  ( ='-S:5]E>#,R,BYH=&U02P4&      H "@!U @
&<04"

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>tssi_10q_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2025"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2025"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2025"
  xmlns:tssi="http://tssi.com/20250630"
  xmlns:us-gaap="http://fasb.org/us-gaap/2025"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="tssi-20250630.xsd" xlink:type="simple"/>
    <context id="From2025-01-01to2025-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-07-05_us-gaap_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-07-05</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_OperatingSegmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_OperatingSegmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_DilutedNetIncomePerShareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:DilutedNetIncomePerShareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_DilutedNetIncomePerShareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:DilutedNetIncomePerShareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_DilutedNetIncomePerShareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:DilutedNetIncomePerShareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_DilutedNetIncomePerShareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:DilutedNetIncomePerShareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_BasicNetIncomePerShareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:BasicNetIncomePerShareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_BasicNetIncomePerShareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:BasicNetIncomePerShareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_BasicNetIncomePerShareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:BasicNetIncomePerShareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_BasicNetIncomePerShareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tssi:BasicNetIncomePerShareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_TopMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_BottomMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_CreditAgreementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">tssi:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_CreditAgreementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">tssi:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_tssi_CreditAgreementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">tssi:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_ConstructionInProcessMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ConstructionInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_tssi_ConstructionInProcessMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ConstructionInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_ComputerEquipmentAndSoftwareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_tssi_ComputerEquipmentAndSoftwareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_ComputerEquipmentAndSoftwareMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_FurnitureAndFixturesMember_tssi_TopMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_FurnitureAndFixturesMember_tssi_TopMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_us-gaap_FurnitureAndFixturesMember_tssi_TopMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_TopMember_us-gaap_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_BottomMember_us-gaap_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_TradeEquipmentMember_tssi_BottomMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:TradeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_tssi_TradeEquipmentMember_tssi_BottomMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:TradeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_FurnitureAndFixtureMember_tssi_BottomMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:FurnitureAndFixtureMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_TradeEquipmentMember_tssi_TopMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:TopMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:TradeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_TradeEquipmentMember_tssi_BottomMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tssi:BottomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tssi:TradeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_ComputerSoftwareIntangibleAssetMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_ComputerSoftwareIntangibleAssetMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:ComputerSoftwareIntangibleAssetMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_CustomerRelationshipsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_CustomerRelationshipsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_GoodwillMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByAssetClassAxis">us-gaap:GoodwillMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_GoodwillMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByAssetClassAxis">us-gaap:GoodwillMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_ProcurementAndIntegrationServicesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementAndIntegrationServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_MaintenanceContractsObligationsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:MaintenanceContractsObligationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="From2024-01-01to2024-12-31_tssi_USBasedITOEMCompanyMember_us-gaap_AccountsReceivableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_us-gaap_AccountsReceivableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">tssi:RevenuesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">tssi:RevenuesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">tssi:RevenuesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tssi:USBasedITOEMCompanyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">tssi:RevenuesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:IntegrationServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:IntegrationServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:EquipmentDeploymentAndOtherServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:EquipmentDeploymentAndOtherServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_ProcurementRevenuesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_ProcurementRevenuesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:MaintenanceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:MaintenanceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:MaintenanceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_ProcurementRevenuesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:IntegrationServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:EquipmentDeploymentAndOtherServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_ProcurementRevenuesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:ProcurementServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:ProcurementRevenuesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:IntegrationServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:SystemIntegrationServicesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tssi:EquipmentDeploymentAndOtherServicesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:MaintenanceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-06-30_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_FacilitiesSegmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tssi:FacilitiesSegmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="AsOf2025-03-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="AsOf2025-03-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="AsOf2025-03-31_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="AsOf2025-03-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-03-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="AsOf2024-03-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="AsOf2024-03-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="AsOf2024-03-31_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="AsOf2024-03-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="From2024-01-01to2024-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-03-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2023-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-12-31_tssi_TreasuryCommonSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tssi:TreasuryCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="From2024-01-01to2024-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2024-04-01to2024-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="From2025-04-01to2025-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-08-07">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001320760</identifier>
        </entity>
        <period>
            <instant>2025-08-07</instant>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="USDPShares">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Pure">
        <measure>pure</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="From2025-01-01to2025-06-30" id="ixv-11422">0001320760</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="From2025-01-01to2025-06-30" id="ixv-11423">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate contextRef="From2025-01-01to2025-06-30" id="ixv-11424">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalPeriodFocus contextRef="From2025-01-01to2025-06-30" id="ixv-11425">Q2</dei:DocumentFiscalPeriodFocus>
    <dei:DocumentFiscalYearFocus contextRef="From2025-01-01to2025-06-30" id="ixv-11426">2025</dei:DocumentFiscalYearFocus>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2024-12-31"
      decimals="INF"
      id="ixv-11427"
      unitRef="USDPShares">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="ixv-11428"
      unitRef="Shares">49000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2024-12-31"
      decimals="INF"
      id="ixv-11429"
      unitRef="USDPShares">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="ixv-11430"
      unitRef="Shares">1000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="ixv-11431"
      unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2025-06-30"
      decimals="0"
      id="ixv-11432"
      unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <ecd:Rule10b51ArrAdoptedFlag contextRef="From2025-01-01to2025-06-30" id="ixv-11433">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrTrmntdFlag contextRef="From2025-01-01to2025-06-30" id="ixv-11434">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrAdoptedFlag contextRef="From2025-01-01to2025-06-30" id="ixv-11435">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrTrmntdFlag contextRef="From2025-01-01to2025-06-30" id="ixv-11436">false</ecd:NonRule10b51ArrTrmntdFlag>
    <tssi:CashDepositInAMoneyMarketAccount
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="ixv-11437"
      unitRef="USD">5.0</tssi:CashDepositInAMoneyMarketAccount>
    <tssi:ConcentrationRiskPercentageOne
      contextRef="From2024-01-01to2024-12-31_tssi_USBasedITOEMCompanyMember_us-gaap_AccountsReceivableMember"
      decimals="2"
      id="ixv-11438"
      unitRef="Pure">0.98</tssi:ConcentrationRiskPercentageOne>
    <dei:DocumentType contextRef="From2025-01-01to2025-06-30" id="ixv-12646">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport contextRef="From2025-01-01to2025-06-30" id="ixv-12647">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate contextRef="From2025-01-01to2025-06-30" id="ixv-12648">2025-06-30</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport contextRef="From2025-01-01to2025-06-30" id="ixv-12649">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="From2025-01-01to2025-06-30" id="ixv-12650">001-33627</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="From2025-01-01to2025-06-30" id="ixv-12651">TSS, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="From2025-01-01to2025-06-30" id="ixv-12652">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="From2025-01-01to2025-06-30" id="ixv-12653">20-2027651</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="From2025-01-01to2025-06-30" id="ixv-12654">1800 Aviation Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2 contextRef="From2025-01-01to2025-06-30" id="ixv-12655">Building 1</dei:EntityAddressAddressLine2>
    <dei:EntityAddressAddressLine3 contextRef="From2025-01-01to2025-06-30" id="ixv-12656">Suite 100</dei:EntityAddressAddressLine3>
    <dei:EntityAddressCityOrTown contextRef="From2025-01-01to2025-06-30" id="ixv-12657">Georgetown</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="From2025-01-01to2025-06-30" id="ixv-12658">TX</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="From2025-01-01to2025-06-30" id="ixv-12659">78628</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="From2025-01-01to2025-06-30" id="ixv-12660">512</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="From2025-01-01to2025-06-30" id="ixv-12661">310-1000</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="From2025-01-01to2025-06-30" id="ixv-12662">Common Stock, $.0001 par value</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="From2025-01-01to2025-06-30" id="ixv-12663">TSSI</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="From2025-01-01to2025-06-30" id="ixv-12664">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus contextRef="From2025-01-01to2025-06-30" id="ixv-12665">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="From2025-01-01to2025-06-30" id="ixv-12666">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="From2025-01-01to2025-06-30" id="ixv-12667">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="From2025-01-01to2025-06-30" id="ixv-12668">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="From2025-01-01to2025-06-30" id="ixv-12669">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany contextRef="From2025-01-01to2025-06-30" id="ixv-12670">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="AsOf2025-08-07"
      decimals="INF"
      id="ixv-12671"
      unitRef="Shares">25364244</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1089"
      unitRef="USD">36836000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1090"
      unitRef="USD">23222000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:ReceivablesNetCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1091"
      unitRef="USD">13997000</us-gaap:ReceivablesNetCurrent>
    <us-gaap:ReceivablesNetCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1092"
      unitRef="USD">16203000</us-gaap:ReceivablesNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1093"
      unitRef="USD">4418000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1094"
      unitRef="USD">851000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:InventoryNet
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1095"
      unitRef="USD">14589000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1096"
      unitRef="USD">17673000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1097"
      unitRef="USD">1055000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1098"
      unitRef="USD">248000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1099"
      unitRef="USD">70895000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1100"
      unitRef="USD">58197000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1101"
      unitRef="USD">35288000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1102"
      unitRef="USD">8591000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1103"
      unitRef="USD">22939000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1104"
      unitRef="USD">24213000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1105"
      unitRef="USD">780000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1106"
      unitRef="USD">780000</us-gaap:Goodwill>
    <us-gaap:RestrictedCash
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1107"
      unitRef="USD">5000000</us-gaap:RestrictedCash>
    <us-gaap:RestrictedCash
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1108"
      unitRef="USD">0</us-gaap:RestrictedCash>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1109"
      unitRef="USD">4568000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1110"
      unitRef="USD">4787000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1111"
      unitRef="USD">139470000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1112"
      unitRef="USD">96568000</us-gaap:Assets>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1114"
      unitRef="USD">82020000</us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1115"
      unitRef="USD">53340000</us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1116"
      unitRef="USD">3333000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1117"
      unitRef="USD">2613000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1118"
      unitRef="USD">1891000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1119"
      unitRef="USD">966000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1120"
      unitRef="USD">87244000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1121"
      unitRef="USD">56919000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1123"
      unitRef="USD">19541000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1124"
      unitRef="USD">8200000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1125"
      unitRef="USD">22648000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1126"
      unitRef="USD">23540000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1127"
      unitRef="USD">499000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1128"
      unitRef="USD">771000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1129"
      unitRef="USD">42688000</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1130"
      unitRef="USD">32511000</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1131"
      unitRef="USD">129932000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1132"
      unitRef="USD">89430000</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2025-06-30"
      decimals="INF"
      id="fid_907"
      unitRef="USDPShares">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_909"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1135"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1136"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2025-06-30"
      decimals="INF"
      id="fid_899"
      unitRef="USDPShares">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_901"
      unitRef="Shares">49000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_904"
      unitRef="Shares">25975000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_903"
      unitRef="Shares">25250000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_906"
      unitRef="Shares">23740000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_905"
      unitRef="Shares">23107000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1137"
      unitRef="USD">3000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1138"
      unitRef="USD">3000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1139"
      unitRef="USD">76058000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1140"
      unitRef="USD">74200000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:TreasuryStockCommonShares
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_914"
      unitRef="Shares">1975000</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockCommonShares
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_913"
      unitRef="Shares">1849000</us-gaap:TreasuryStockCommonShares>
    <tssi:TreasuryStocksCommonValue
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1141"
      unitRef="USD">-10650000</tssi:TreasuryStocksCommonValue>
    <tssi:TreasuryStocksCommonValue
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1142"
      unitRef="USD">-6730000</tssi:TreasuryStocksCommonValue>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1143"
      unitRef="USD">-55873000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1144"
      unitRef="USD">-60335000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1145"
      unitRef="USD">9538000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1146"
      unitRef="USD">7138000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1147"
      unitRef="USD">139470000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1148"
      unitRef="USD">96568000</us-gaap:LiabilitiesAndStockholdersEquity>
    <tssi:RevenueFromProcurement
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1150"
      unitRef="USD">33002000</tssi:RevenueFromProcurement>
    <tssi:RevenueFromProcurement
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1151"
      unitRef="USD">4914000</tssi:RevenueFromProcurement>
    <tssi:RevenueFromProcurement
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1152"
      unitRef="USD">123179000</tssi:RevenueFromProcurement>
    <tssi:RevenueFromProcurement
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1153"
      unitRef="USD">16538000</tssi:RevenueFromProcurement>
    <tssi:RevenueFromFacilitiesManagement
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1154"
      unitRef="USD">1482000</tssi:RevenueFromFacilitiesManagement>
    <tssi:RevenueFromFacilitiesManagement
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1155"
      unitRef="USD">2285000</tssi:RevenueFromFacilitiesManagement>
    <tssi:RevenueFromFacilitiesManagement
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1156"
      unitRef="USD">2780000</tssi:RevenueFromFacilitiesManagement>
    <tssi:RevenueFromFacilitiesManagement
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1157"
      unitRef="USD">4431000</tssi:RevenueFromFacilitiesManagement>
    <tssi:RevenueFromSystemIntegration
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1158"
      unitRef="USD">9486000</tssi:RevenueFromSystemIntegration>
    <tssi:RevenueFromSystemIntegration
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1159"
      unitRef="USD">4960000</tssi:RevenueFromSystemIntegration>
    <tssi:RevenueFromSystemIntegration
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1160"
      unitRef="USD">16970000</tssi:RevenueFromSystemIntegration>
    <tssi:RevenueFromSystemIntegration
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1161"
      unitRef="USD">7083000</tssi:RevenueFromSystemIntegration>
    <us-gaap:Revenues
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1162"
      unitRef="USD">43970000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1163"
      unitRef="USD">12159000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1164"
      unitRef="USD">142929000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1165"
      unitRef="USD">28052000</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1166"
      unitRef="USD">36155000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1167"
      unitRef="USD">7623000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1168"
      unitRef="USD">125904000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1169"
      unitRef="USD">20802000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1170"
      unitRef="USD">7815000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1171"
      unitRef="USD">4536000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1172"
      unitRef="USD">17025000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1173"
      unitRef="USD">7250000</us-gaap:GrossProfit>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1175"
      unitRef="USD">4735000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1176"
      unitRef="USD">2719000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1177"
      unitRef="USD">9622000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1178"
      unitRef="USD">5108000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1179"
      unitRef="USD">844000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1180"
      unitRef="USD">117000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1181"
      unitRef="USD">1054000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1182"
      unitRef="USD">188000</us-gaap:DepreciationAndAmortization>
    <us-gaap:OperatingExpenses
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1183"
      unitRef="USD">5579000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1184"
      unitRef="USD">2836000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1185"
      unitRef="USD">10676000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1186"
      unitRef="USD">5296000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1187"
      unitRef="USD">2236000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1188"
      unitRef="USD">1700000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1189"
      unitRef="USD">6349000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1190"
      unitRef="USD">1954000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestExpense
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1191"
      unitRef="USD">859000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1192"
      unitRef="USD">378000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1193"
      unitRef="USD">2327000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1194"
      unitRef="USD">706000</us-gaap:InterestExpense>
    <us-gaap:InterestIncomeOther
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1195"
      unitRef="USD">175000</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeOther
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1196"
      unitRef="USD">106000</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeOther
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1197"
      unitRef="USD">558000</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeOther
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1198"
      unitRef="USD">205000</us-gaap:InterestIncomeOther>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1199"
      unitRef="USD">1552000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1200"
      unitRef="USD">1428000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1201"
      unitRef="USD">4580000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1202"
      unitRef="USD">1453000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1203"
      unitRef="USD">69000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1204"
      unitRef="USD">26000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1205"
      unitRef="USD">118000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1206"
      unitRef="USD">36000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1207"
      unitRef="USD">1483000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1208"
      unitRef="USD">1402000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1209"
      unitRef="USD">4462000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1210"
      unitRef="USD">1417000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2025-04-01to2025-06-30"
      decimals="INF"
      id="fid_1211"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2024-04-01to2024-06-30"
      decimals="INF"
      id="fid_1212"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2025-01-01to2025-06-30"
      decimals="INF"
      id="fid_1213"
      unitRef="USDPShares">0.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2024-01-01to2024-06-30"
      decimals="INF"
      id="fid_1214"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2025-04-01to2025-06-30"
      decimals="INF"
      id="fid_1215"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2024-04-01to2024-06-30"
      decimals="INF"
      id="fid_1216"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2025-01-01to2025-06-30"
      decimals="INF"
      id="fid_1217"
      unitRef="USDPShares">0.17</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2024-01-01to2024-06-30"
      decimals="INF"
      id="fid_1218"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:SharesIssued
      contextRef="AsOf2023-12-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1219"
      unitRef="Shares">23533000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1221"
      unitRef="USD">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1222"
      unitRef="USD">72103000</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2023-12-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1220"
      unitRef="Shares">1762000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1223"
      unitRef="USD">2245000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1224"
      unitRef="USD">66311000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31"
      decimals="-3"
      id="fid_1225"
      unitRef="USD">3549000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1226"
      unitRef="Shares">376000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1228"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1229"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1230"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1231"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-01-01to2024-03-31"
      decimals="-3"
      id="fid_1232"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1235"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1236"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockSharesAcquiredCostMethod
      contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1234"
      unitRef="Shares">120000</tssi:TreasuryStockSharesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1237"
      unitRef="USD">55000</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1238"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-01-01to2024-03-31"
      decimals="-3"
      id="fid_1239"
      unitRef="USD">55000</tssi:TreasuryStockValuesAcquiredCostMethod>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1240"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1241"
      unitRef="USD">150000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1242"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1243"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-01-01to2024-03-31"
      decimals="-3"
      id="fid_1244"
      unitRef="USD">150000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1245"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1246"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1247"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1248"
      unitRef="USD">15000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-03-31"
      decimals="-3"
      id="fid_1249"
      unitRef="USD">15000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1250"
      unitRef="Shares">23909000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1252"
      unitRef="USD">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1253"
      unitRef="USD">72253000</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1251"
      unitRef="Shares">1882000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1254"
      unitRef="USD">2300000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1255"
      unitRef="USD">66296000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-03-31"
      decimals="-3"
      id="fid_1256"
      unitRef="USD">3659000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1257"
      unitRef="Shares">135000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1259"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1260"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1261"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1262"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1263"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1264"
      unitRef="Shares">200000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1266"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1267"
      unitRef="USD">20000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1265"
      unitRef="Shares">15000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1268"
      unitRef="USD">20000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1269"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1270"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1273"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1274"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockSharesAcquiredCostMethod
      contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1272"
      unitRef="Shares">45000</tssi:TreasuryStockSharesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1275"
      unitRef="USD">62000</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1276"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1277"
      unitRef="USD">62000</tssi:TreasuryStockValuesAcquiredCostMethod>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1278"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1279"
      unitRef="USD">155000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1280"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1281"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1282"
      unitRef="USD">155000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-04-01to2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1283"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-04-01to2024-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1284"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-04-01to2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1285"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-04-01to2024-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1286"
      unitRef="USD">1402000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1287"
      unitRef="USD">1402000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1288"
      unitRef="Shares">24244000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1290"
      unitRef="USD">2000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1291"
      unitRef="USD">72428000</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1289"
      unitRef="Shares">1942000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1292"
      unitRef="USD">2382000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1293"
      unitRef="USD">64894000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30"
      decimals="-3"
      id="fid_1294"
      unitRef="USD">5154000</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-12-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1295"
      unitRef="Shares">25250000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1297"
      unitRef="USD">3000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1298"
      unitRef="USD">74200000</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-12-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1296"
      unitRef="Shares">1849000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1299"
      unitRef="USD">6730000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1300"
      unitRef="USD">60335000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1301"
      unitRef="USD">7138000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1302"
      unitRef="Shares">473000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1304"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1305"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1306"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1307"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-01-01to2025-03-31"
      decimals="-3"
      id="fid_1308"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1309"
      unitRef="Shares">70000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1311"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1312"
      unitRef="USD">7000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1313"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1314"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2025-01-01to2025-03-31"
      decimals="-3"
      id="fid_1315"
      unitRef="USD">7000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1318"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1319"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockSharesAcquiredCostMethod
      contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1317"
      unitRef="Shares">124000</tssi:TreasuryStockSharesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1320"
      unitRef="USD">1654000</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1321"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-01-01to2025-03-31"
      decimals="-3"
      id="fid_1322"
      unitRef="USD">1654000</tssi:TreasuryStockValuesAcquiredCostMethod>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1323"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1324"
      unitRef="USD">921000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1325"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1326"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-01-01to2025-03-31"
      decimals="-3"
      id="fid_1327"
      unitRef="USD">921000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1328"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1329"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1330"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1331"
      unitRef="USD">2979000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-03-31"
      decimals="-3"
      id="fid_1332"
      unitRef="USD">2979000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1333"
      unitRef="Shares">25793000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-03-31_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1335"
      unitRef="USD">3000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1336"
      unitRef="USD">75128000</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1334"
      unitRef="Shares">1973000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-03-31_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1337"
      unitRef="USD">8384000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-03-31_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1338"
      unitRef="USD">57356000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-03-31"
      decimals="-3"
      id="fid_1339"
      unitRef="USD">9391000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1340"
      unitRef="Shares">279000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1342"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1343"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1344"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1345"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1346"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1349"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1350"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockSharesAcquiredCostMethod
      contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1348"
      unitRef="Shares">99000</tssi:TreasuryStockSharesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1351"
      unitRef="USD">2266000</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1352"
      unitRef="USD">0</tssi:TreasuryStockValuesAcquiredCostMethod>
    <tssi:TreasuryStockValuesAcquiredCostMethod
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1353"
      unitRef="USD">2266000</tssi:TreasuryStockValuesAcquiredCostMethod>
    <us-gaap:TreasuryStockSharesRetired
      contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1354"
      unitRef="Shares">97000</us-gaap:TreasuryStockSharesRetired>
    <us-gaap:TreasuryStockRetiredCostMethodAmount
      contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1356"
      unitRef="USD">0</us-gaap:TreasuryStockRetiredCostMethodAmount>
    <us-gaap:TreasuryStockRetiredCostMethodAmount
      contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1357"
      unitRef="USD">0</us-gaap:TreasuryStockRetiredCostMethodAmount>
    <us-gaap:TreasuryStockSharesRetired
      contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1355"
      unitRef="Shares">97000</us-gaap:TreasuryStockSharesRetired>
    <us-gaap:TreasuryStockRetiredCostMethodAmount
      contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1358"
      unitRef="USD">0</us-gaap:TreasuryStockRetiredCostMethodAmount>
    <us-gaap:TreasuryStockRetiredCostMethodAmount
      contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1359"
      unitRef="USD">0</us-gaap:TreasuryStockRetiredCostMethodAmount>
    <us-gaap:TreasuryStockRetiredCostMethodAmount
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1360"
      unitRef="USD">0</us-gaap:TreasuryStockRetiredCostMethodAmount>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1361"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1362"
      unitRef="USD">930000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1363"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1364"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1365"
      unitRef="USD">930000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-04-01to2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1366"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-04-01to2025-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1367"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-04-01to2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1368"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-04-01to2025-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1369"
      unitRef="USD">1483000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1370"
      unitRef="USD">1483000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1371"
      unitRef="Shares">25975000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30_us-gaap_CommonStockMember"
      decimals="-3"
      id="fid_1373"
      unitRef="USD">3000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="fid_1374"
      unitRef="USD">76058000</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1372"
      unitRef="Shares">1975000</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30_tssi_TreasuryCommonSharesMember"
      decimals="-3"
      id="fid_1375"
      unitRef="USD">10650000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30_us-gaap_RetainedEarningsMember"
      decimals="-3"
      id="fid_1376"
      unitRef="USD">55873000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1377"
      unitRef="USD">9538000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1379"
      unitRef="USD">4462000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1380"
      unitRef="USD">1417000</us-gaap:NetIncomeLoss>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1382"
      unitRef="USD">1054000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1383"
      unitRef="USD">188000</us-gaap:DepreciationAndAmortization>
    <us-gaap:ShareBasedCompensation
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1384"
      unitRef="USD">1851000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1385"
      unitRef="USD">305000</us-gaap:ShareBasedCompensation>
    <us-gaap:ProvisionForOtherCreditLosses
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1386"
      unitRef="USD">0</us-gaap:ProvisionForOtherCreditLosses>
    <us-gaap:ProvisionForOtherCreditLosses
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1387"
      unitRef="USD">0</us-gaap:ProvisionForOtherCreditLosses>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1388"
      unitRef="USD">8000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1389"
      unitRef="USD">0</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:IncreaseDecreaseInReceivables
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1391"
      unitRef="USD">-2206000</us-gaap:IncreaseDecreaseInReceivables>
    <us-gaap:IncreaseDecreaseInReceivables
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1392"
      unitRef="USD">3468000</us-gaap:IncreaseDecreaseInReceivables>
    <us-gaap:IncreaseDecreaseInUnbilledReceivables
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1393"
      unitRef="USD">3567000</us-gaap:IncreaseDecreaseInUnbilledReceivables>
    <us-gaap:IncreaseDecreaseInUnbilledReceivables
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1394"
      unitRef="USD">-786000</us-gaap:IncreaseDecreaseInUnbilledReceivables>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1395"
      unitRef="USD">-3084000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1396"
      unitRef="USD">2596000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1397"
      unitRef="USD">679000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1398"
      unitRef="USD">286000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <tssi:IncreaseDecreaseInRightOfUseAsset
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1399"
      unitRef="USD">-1274000</tssi:IncreaseDecreaseInRightOfUseAsset>
    <tssi:IncreaseDecreaseInRightOfUseAsset
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1400"
      unitRef="USD">-272000</tssi:IncreaseDecreaseInRightOfUseAsset>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1401"
      unitRef="USD">26799000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1402"
      unitRef="USD">-669000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1403"
      unitRef="USD">448000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1404"
      unitRef="USD">2634000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1405"
      unitRef="USD">33000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1406"
      unitRef="USD">-265000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1407"
      unitRef="USD">36973000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1408"
      unitRef="USD">-1682000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1410"
      unitRef="USD">25779000</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1411"
      unitRef="USD">1721000</us-gaap:PaymentsToAcquireProductiveAssets>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1412"
      unitRef="USD">-25779000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1413"
      unitRef="USD">-1721000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfSeniorLongTermDebt
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1415"
      unitRef="USD">11333000</us-gaap:ProceedsFromIssuanceOfSeniorLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfSeniorLongTermDebt
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1416"
      unitRef="USD">0</us-gaap:ProceedsFromIssuanceOfSeniorLongTermDebt>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1417"
      unitRef="USD">7000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1418"
      unitRef="USD">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1419"
      unitRef="USD">3920000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1420"
      unitRef="USD">117000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1421"
      unitRef="USD">7420000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1422"
      unitRef="USD">-117000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1423"
      unitRef="USD">18614000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1424"
      unitRef="USD">-3520000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1425"
      unitRef="USD">23222000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2023-12-31"
      decimals="-3"
      id="fid_1449"
      unitRef="USD">11831000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2024-06-30"
      decimals="-3"
      id="fid_1450"
      unitRef="USD">8311000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1430"
      unitRef="USD">2327000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1431"
      unitRef="USD">537000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1432"
      unitRef="USD">201000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1433"
      unitRef="USD">79000</us-gaap:IncomeTaxesPaidNet>
    <tssi:CashAndCashEquivalentsBeginningOfPeriod
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1434"
      unitRef="USD">23222000</tssi:CashAndCashEquivalentsBeginningOfPeriod>
    <tssi:CashAndCashEquivalentsBeginningOfPeriod
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1435"
      unitRef="USD">11831000</tssi:CashAndCashEquivalentsBeginningOfPeriod>
    <tssi:RestrictedCashBeginningOfPeriod
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1436"
      unitRef="USD">0</tssi:RestrictedCashBeginningOfPeriod>
    <tssi:RestrictedCashBeginningOfPeriod
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1437"
      unitRef="USD">0</tssi:RestrictedCashBeginningOfPeriod>
    <tssi:CashCashEquivalentsAndRestrictedCashBeginningOfPeriods
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1438"
      unitRef="USD">23222000</tssi:CashCashEquivalentsAndRestrictedCashBeginningOfPeriods>
    <tssi:CashCashEquivalentsAndRestrictedCashBeginningOfPeriods
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1439"
      unitRef="USD">11831000</tssi:CashCashEquivalentsAndRestrictedCashBeginningOfPeriods>
    <tssi:CashAndCashEquivalentsEndOfPeriod
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1440"
      unitRef="USD">36836000</tssi:CashAndCashEquivalentsEndOfPeriod>
    <tssi:CashAndCashEquivalentsEndOfPeriod
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1441"
      unitRef="USD">8311000</tssi:CashAndCashEquivalentsEndOfPeriod>
    <tssi:RestrictedCashEndOfPeriod
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1442"
      unitRef="USD">5000000</tssi:RestrictedCashEndOfPeriod>
    <tssi:RestrictedCashEndOfPeriod
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1443"
      unitRef="USD">0</tssi:RestrictedCashEndOfPeriod>
    <tssi:CashCashEquivalentsAndRestrictedCashEndOfPeriods
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1444"
      unitRef="USD">41836000</tssi:CashCashEquivalentsAndRestrictedCashEndOfPeriods>
    <tssi:CashCashEquivalentsAndRestrictedCashEndOfPeriods
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1445"
      unitRef="USD">8311000</tssi:CashCashEquivalentsAndRestrictedCashEndOfPeriods>
    <tssi:NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1447"
      unitRef="USD">1881000</tssi:NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable>
    <tssi:NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1448"
      unitRef="USD">0</tssi:NonCashTransactionAdditionsToCapitalExpendituresFinancedWithAccountsPayable>
    <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1020">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;Note 1 &lt;/strong&gt;&#x2013;&lt;strong&gt; Significant Accounting Policies&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;&lt;em&gt;Description of Business&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;TSS, Inc. ("TSS&#x201d;, the "Company&#x201d;, "we&#x201d;, "us&#x201d; or "our&#x201d;) provides a comprehensive suite of services for the planning, design, deployment, maintenance and refresh of end-user and enterprise systems, including the mission-critical facilities in which they are housed. We provide a single source solution for enabling technologies in data centers, operations centers, network facilities, server rooms, security operations centers, communications facilities and the infrastructure systems that are critical to their function. Our services consist of technology consulting, design and engineering, project management, systems integration, systems installation, facilities management and IT procurement services. Beginning in 2024, our systems integration services have been enhanced to include integration of Artificial Intelligence (AI) enabled data center server racks.&#160; TSS was incorporated in Delaware in December 2004.&#160; We recently relocated our corporate offices and primary integration facility from Round Rock, Texas to Georgetown, Texas and continue to operate a second integration facility at our former corporate office in Round Rock, Texas.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The preparation of the condensed consolidated financial statements in accordance with accounting principles generally accepted in the United States of America ("U. S. GAAP&#x201d;) requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenues and expenses and related disclosure of contingent assets and liabilities. On an ongoing basis, we evaluate our estimates which are based on historical experience and on various other assumptions that we believe are reasonable under the circumstances, the results of which form a basis for making judgments about the carrying value of assets and liabilities that are not readily apparent from other sources. Actual results may differ from these estimates under different assumptions or conditions; however, we believe that our estimates are reasonable and that the actual results will not vary significantly from the estimated amounts.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Basis of Presentation&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The accompanying condensed consolidated balance sheet as of December 31, 2024, which has been derived from audited consolidated financial statements, and the unaudited interim condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#x201c;GAAP&#x201d;) for interim financial statements and pursuant to the rules and regulations of the SEC for interim reporting and include the accounts of the Company and its consolidated subsidiaries. In the opinion of management, the accompanying unaudited condensed consolidated financial statements contain all adjustments (consisting only of normal recurring items) necessary to present fairly the consolidated financial position of the Company and its consolidated results of operations, changes in stockholders&#x2019; equity and cash flows. These interim condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and accompanying notes included in the Company&#x2019;s Annual Report on Form 10-K for the year ended December 31, 2024.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Certain prior year amounts have been reclassified to conform to the current presentation.&#160; The reclassifications are:&#160; (i) on our statements of operations, we now present revenues from each individual segment whereas the prior year revenues were all presented on a single line item; (ii) on our statements of operations, we now present interest expense and interest income separately whereas we presented a single amount &#x201c;interest expense, net&#x201d; in the prior year presentation and (iii) we recast the segment disclosures to present our procurement services as a separate segment consistent with the current year presentation whereas those results were aggregated into the systems integration segment in the prior year presentation.&#160; These reclassifications had no net effect on our reported results of operations, financial position or cash flows.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Principles of Consolidation&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The condensed consolidated financial statements include the accounts of the Company and its wholly owned subsidiary. All intercompany accounts and transactions have been eliminated in consolidation.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Financial Instruments&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The Company&#x2019;s financial instruments consist primarily of cash and cash equivalents, including money market accounts, and debt.&#160;&lt;em&gt; &lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Based primarily on the short-term nature of cash and cash equivalents, we estimate that their carrying amount approximates their fair value at June 30, 2025 and December 31, 2024.&#160; We consider the fair value of our cash and cash equivalents, including money market accounts, to be measured using Level 1 inputs.&#160; &#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;As it does not have a quoted market price and its term extends beyond a year, requiring more judgment, we consider our debt balance to be measured using Level 2 inputs.&#160; As the debt bears a floating interest rate that is adjusted frequently in line with movements in prevailing interest rates that would be used to discount any future cash flows, we estimate that its carrying value approximates its fair value.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Accounting for Business Combinations&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We allocate the purchase price of an acquired business to its identifiable assets and liabilities based on estimated fair values. The excess of the purchase price over the fair value of the assets acquired and liabilities assumed, if any, is recorded as goodwill.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We use all available information to estimate fair values. We typically engage outside appraisal firms to assist in the fair value determination of identifiable intangible assets such as customer contracts, leases, and any other significant assets or liabilities and contingent consideration. Preliminary purchase price allocation is adjusted, as necessary, up to one year after the acquisition closing date if management obtains more information regarding asset valuations and liabilities assumed.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Revenue Recognition&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We recognize revenues when control of the promised goods or services is transferred to our customers in an amount that reflects the consideration we expect to be entitled to in exchange for those goods or services.&#160; Some of our contracts with customers contain multiple performance obligations. For these contracts, we account for individual performance obligations separately if they are distinct. The transaction price is allocated to the separate performance obligations based on relative stand-alone selling prices.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Maintenance services&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate maintenance services revenues from fees that provide our customers with as-needed maintenance and repair services on modular data centers during the contract term. Our contract terms typically are one year in duration, are billed annually in advance, and are non-cancelable. As a result, we record deferred revenue (a contract liability) and recognize revenue from these services ratably over the contract term. We can mitigate our exposure to credit losses by discontinuing services in the event of non-payment.&#160;However, our history of non-payments and bad debt expenses has been insignificant.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Integration services&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate integration services revenues by providing our customers with customized systems and rack-level integration services. We recognize revenue upon shipment to the customer of the completed systems as this is when we have completed our services and when the customer obtains control of the promised goods.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Pursuant to a multi-year agreement signed in 2024, we also recognize revenue monthly at contractually based amounts for certain billable fixed and facility costs and trained staffing levels to support the weekly quantity of AI-enabled racks, with staffing fees reduced for any under-staffing. The fee for staffing is based on defined services as transferred to the customer and are not variable consideration because the customer&#x2019;s usage is known weekly and is not contingent on the occurrence of any future events or subject to any estimation.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We typically extend credit terms to our integration customers based on their creditworthiness and generally do not receive advance payments. As such, we record accounts receivable at the time of shipment, when our right to the consideration becomes unconditional. Accounts receivable from our integration customers are typically due within 30-105 days of invoicing. An allowance for credit losses is provided based on a periodic analysis of individual account balances, including an evaluation of days outstanding, payment history, recent payment trends, and our assessment of our customers&#x2019; creditworthiness. Our allowance for credit losses was $21,000 and $7,000 on June 30, 2025 and December 31, 2024, respectively.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Equipment and Material sales&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate revenues under fixed price contracts from the sale of data center and related ancillary equipment or materials to customers in the United States. We recognize revenue when the product is shipped to the customer as that is when the customer obtains control of the promised goods and when we have completed our contractual obligations. Typically, we do not receive advance payments for equipment or material sales; however, if we do, we record the advance payment as deferred revenues. Normally we record accounts receivable at the time of shipment, when our right to the consideration has become unconditional. Accounts receivable from our equipment and material sales are typically due within 30-45 days of invoicing.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Deployment and Other services&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate revenues from fees we charge our customers for other services, including repairs or other services not covered under maintenance contracts; installation and servicing of equipment, including modular data centers; and other fixed-price services including repair, design and project management services, or the moving of equipment to a different location. In some cases, we arrange for a third party to perform &#x201c;break-fix&#x201d; and servicing of equipment upon customer request, and in these instances, we recognize revenue as the amount of any fees or commissions to which we expect to be entitled. Other services are typically invoiced upon completion of services or completion of milestones. We record accounts receivable at the time of completion when our right to consideration becomes unconditional.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Procurement services&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate revenues from fees we charge our customers to procure third-party hardware, software and professional services on their behalf, some of which are then used in our integration services as we integrate these components to deliver a completed system to our customer. We recognize our procurement services revenues upon completion of the procurement activity. For any procurement activities in which we somehow transform the product, the revenues recognized on these transactions are the gross sales amount of the transaction, and we recognize offsetting costs of sales for any costs we incur to procure the related goods (&#x201c;gross deals&#x201d;).&#160; In some cases, we arrange for the purchase of third-party hardware, software or professional services that are to be provided directly to our customers by another party, we have no control of the goods before they are transferred to the customer and we do not transform the product in any way. In these instances, we are acting as an agent in the transaction and recognize revenue on a net basis, recording only the amount of any fee or commissions to which we expect to be entitled after paying the other party for the goods or services provided to the customer (&#x201c;net deals&#x201d;). Accounts receivable from our procurement activities are typically due within 80 days of invoicing.&#160; The majority of the procurement activities generally involve us transforming the product, and as such the majority of these transactions are recorded gross.&#160; In order to accelerate the time period in which we receive payment, we generally factor the procurement services receivables utilizing a program that we estimate has an effective annualized interest rate below the rate at which we could borrow funds.&#160; Regardless of whether the transaction is recorded as a gross deal or a net deal, the interest we are charged through the factoring program is based on the gross value of each transaction.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following table presents our revenues disaggregated by reportable segment and by product or service type (in &#x2019;000&#x2019;s):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three-Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;FACILITIES MANAGEMENT:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Maintenance revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,026&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,293&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,899&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,598&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Equipment sales, deployment and other services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;456&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;992&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;881&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,833&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Facilities Management revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,482&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,285&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,780&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,431&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SYSTEMS INTEGRATION:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Integration services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;9,486&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,960&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,670&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;7,083&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Systems Integration revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,486&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,960&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,970&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,083&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;PROCUREMENT:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Procurement services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;33,002&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,914&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;123,179&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,538&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Procurement revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;33,002&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,914&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;123,179&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,538&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;TOTAL REVENUES&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;43,970&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;12,159&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;142,929&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;28,052&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Judgments&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We consider several factors in determining that control transfers to the customer upon shipment of equipment or upon completion of our services. These factors include that legal title transfers to the customer, we have a present right to payment, and the customer has assumed the risks and rewards of ownership at the time of shipment or completion of the services.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Sales taxes&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Sales (and similar) taxes that are imposed on our sales and collected from customers are excluded from revenues.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Shipping and handling costs&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Costs for shipping and handling activities, including those activities that occur subsequent to transfer of control to the customer, are recorded as cost of revenues and are expensed as incurred. We accrue costs for shipping and handling activities that occur after control of the promised good or service has been transferred to the customer.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Deferred Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Remaining performance obligations include deferred revenue and amounts we expect to receive for goods and services that have not yet been delivered or provided under existing, non-cancellable contracts. For contracts that have an original duration of one year or less, we have elected the practical expedient applicable to such contracts and we do not disclose the transaction price for remaining performance obligations at the end of each reporting period and when we expect to recognize this revenue. As of June 30, 2025, deferred revenue of $3,832,000 includes:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:4%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:4%;vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;span style="font-family:symbol"&gt;&#xb7;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;$2,459,000 of our remaining performance obligations for our maintenance contracts, all of which are expected to be recognized within one year, and&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;span style="font-family:symbol"&gt;&#xb7;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;$1,373,000 relates to procurement and integration services where we have yet to complete our services for our customers. Of the deferred revenues related to procurement and integration services,&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160; &lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:12%;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:4%;vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;o&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;$874,000 is expected to be recognized within one year, and&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;o&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;$499,000 is expected to be recognized beyond one year.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Contract liabilities consisting of deferred revenues were $3,384,000 on December 31, 2024, and $3,370,000 on December 31, 2023.&#160; Substantially all of the recorded deferred revenues at December 31, 2024 and December 31, 2023 had been earned and recorded as revenues in the six month periods ended June 30, 2025 and June 30, 2024, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Concentration of Credit Risk &lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We are currently economically dependent upon our relationship with a large US-based IT OEM (Original Equipment Manufacturer). If this relationship is unsuccessful or discontinues, our business and revenue will suffer. The loss of or a significant reduction in orders from this customer or the failure to provide adequate products or services to it would significantly reduce our revenue.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following customer accounted for a significant percentage of our revenues for the periods shown:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;US-based IT OEM&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;98&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;97&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;99&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;97&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;No other customers represented more than 10% of our revenues for any period presented. Our US-based IT OEM customer represented 98% of our accounts receivable at both June 30, 2025 and December 31, 2024. No other customer represented more than 10% of our accounts receivable at either of those dates.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Non-recourse factoring&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We have entered into a factoring agreement with a financial institution to sell certain of our accounts receivable from a US-based IT OEM customer under a non-recourse agreement. Due to the extended payment terms from that customer, we use this factoring arrangement as the effective interest rate implicit in this arrangement is less than the rate at which we could borrow the funds to carry those receivables through their due date.&#160; Under the arrangement, we sell certain trade receivables on a non-recourse basis and account for the transaction as a sale of the receivable. The financial institution assumes the full risk of collection, without recourse to the Company in the event of a loss. Debtors are directed to send payments directly to the financial institution. The applicable receivables are removed from our consolidated balance sheet when we receive the cash proceeds. We do not service any factored accounts after the factoring has occurred. We utilize this factoring arrangement as part of our financing for working capital. The table below presents information relevant to this factoring program (in $&#x2019;000&#x2019;s):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three-Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Aggregate gross amount factored&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;72,391&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,835&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;193,484&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;50,978&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Financing fees paid&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;882&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;427&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,425&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;742&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Financing fees were recorded as interest expense in our consolidated statements of operations or in deferred costs if the interest related to projects for which revenue has not yet been recognized. The total amounts factored exceed our total recorded revenues, as the factoring fees apply to the gross value of receivables collected through the program, while we record only our agent fee on procurement contracts as revenue for any procurement activity that is shipped directly from third parties to the end customer.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Stock-Based Compensation&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Stock-based compensation is measured at the grant date based on the fair value of the award and is recognized as expense ratably over the requisite service period, net of estimated forfeitures. For awards with performance-based vesting criteria, we recognize expense only once it is deemed probable that the performance criteria will be met.&#160; We award shares of restricted stock and stock options to employees, managers, executive officers, and directors for both incentive and retention purposes.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;During the three-month and six-month periods ended June 30, 2025, we incurred approximately $0.9 million and $1.9 million, respectively, of non-cash stock-based compensation expense.&#160; In the comparable three-month and six-month prior year periods ended June 30, 2024, we incurred approximately $0.2 million and $0.3 million, respectively, of non-cash stock-based compensation expense.&#160; In each period, the expense was included in selling, general and administrative expenses in the accompanying Condensed Consolidated Statements of Operations&lt;em&gt;.&lt;/em&gt;&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Cash, cash equivalents, and restricted cash&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Cash and cash equivalents are comprised of cash in banks and highly liquid instruments with original maturities of three months or less, primarily consisting of bank time deposits. We had unrestricted cash of $36.8 million and $18.2 million, almost all of which was beyond FDIC insured limits on June 30, 2025 and December 31, 2024, respectively.&#160; At each of those dates, we additionally had $5.0 million of restricted cash in a money market account held by our bank as collateral for our outstanding bank debt, which also exceeded FDIC insured limits.&#160; Under the terms of the loan agreement, we can at any point request that the bank apply the deposit as a reduction of loan principal.&#160; This balance is presented separately on our balance sheet at June 30, 2025 and was classified with cash and cash equivalents at December 31, 2024.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Contract and Other Receivables&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Accounts receivables are recorded at the invoiced amount and may bear interest in the event of late payment under certain contracts.&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Allowance for Credit Losses&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We estimate an allowance for credit losses based on estimated credit losses, based on factors related to the specific credit risk of each customer. Historically our credit losses have been minimal. We perform credit evaluations of new customers and may require prepayments or the use of bank instruments such as trade letters of credit to mitigate credit risk. We monitor outstanding amounts to limit our credit exposure to individual accounts. We continue to pursue collection even if we have fully provided for an account balance.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following table summarizes the changes in our allowance for credit losses (in &#x2019;000):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Balance at beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Additions charged to expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Recovery of amounts previously reserved&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Amounts written off&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;21&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Inventories&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Inventories are stated at the lower of cost or net realizable value. Cost is determined using the first-in, first-out method for all purchased inventories. We write down obsolete inventory or inventory more than our estimated usage to its estimated realizable value less cost to sell, if less than its cost. Inherent in our estimates of net realizable value in determining inventory valuation are estimates related to future demand and technological obsolescence of our products. Any significant unanticipated changes in demand or technological developments could have a significant impact on the value of our inventories and our results of operations and financial position could be materially affected.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Property and Equipment&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Property and equipment are recorded at cost, including interest incurred during the construction phase of assets financed at least partly with debt. We provide for depreciation using the straight-line method over the estimated useful lives of the assets. Additions and major replacements or improvements are capitalized, while minor replacements and maintenance costs are charged to expense as incurred. Depreciation expense is included in operating expenses in the consolidated statements of operations. The cost and accumulated depreciation of assets sold or retired are removed from the accounts and any gain or loss is included in the results of operations for the period of the transaction.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Goodwill and Intangible Assets&lt;/em&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We have recorded goodwill and intangible assets with definite lives, including customer relationships and acquired software, in conjunction with the acquisition of various businesses. These intangible assets are amortized based on their estimated economic lives. Goodwill represents the excess of the purchase price over the fair value of net identified tangible and intangible assets acquired and liabilities assumed, and it is not amortized. The recorded goodwill is allocated to the reporting unit to which the underlying transaction relates.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;U. S. GAAP requires us to perform an impairment test of goodwill on an annual basis or whenever events or circumstances make it more likely than not that impairment of goodwill may have occurred. As part of the annual impairment test, we review for indicators of impairment as &#x201c;Step Zero&#x201d; of the annual impairment test as defined by U.S. GAAP and if any exist, we compare the fair value of the reporting unit with its carrying amount. If that fair value exceeds the carrying amount, no impairment charge is required to be recorded. If the carrying value exceeds the reporting unit&#x2019;s fair value, we would recognize a goodwill impairment charge for the amount by which the carrying amount exceeds the reporting unit&#x2019;s fair value. However, the impairment loss recognized cannot exceed the total amount of goodwill allocated to that reporting unit. If necessary, the fair value of a reporting unit will be determined using a discounted cash flow analysis, which requires the use of estimates and assumptions. Significant assumptions that may be required include forecasted operating results and the determination of an appropriate discount rate. Actual results may differ from forecasted results, which may have a material impact on the conclusions reached.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We also review intangible assets with definite lives for impairment whenever events or circumstances indicate that the carrying amount may not be recoverable. If the sum of the expected undiscounted cash flows is less than the carrying value of the related asset, a loss is recognized for the difference between the fair value and carrying value of the intangible asset.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We have elected to use December 31 as our annual assessment date. As circumstances change that could affect the recoverability of the carrying amount of the assets during an interim period, we will evaluate our indefinite lived intangible assets for impairment.&#160;At our most recent annual assessment date of December 31, 2024, we identified no such indicators of impairment and determined there was no impairment at that date.&#160; In the quarter ended June 30, 2025, we considered relevant matters including macroeconomic and other conditions on our operations and noted no material triggering events or circumstances that occurred during that period that would indicate the carrying value of our goodwill or other long-lived intangible assets was impaired.&#160; On June 30, 2025 and December 31, 2024, the carrying value of goodwill was $0.8 million.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Income Taxes&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Deferred income taxes are provided for the temporary differences between the financial reporting and tax basis of the Company&#x2019;s assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. The U.S. net operating losses generated prior to 2018 and not utilized can be carried forward for 20 years to offset future taxable income. A full valuation allowance has been recorded against our net deferred tax assets, because we have concluded that under relevant accounting standards it is more likely than not that deferred tax assets will not be realizable. We re-evaluate this assessment quarterly and if we determine, after weighing all positive and all negative evidence available at that time, that it is more likely than not that the deferred tax asset will be realizable, we will remove the valuation allowance at that point in time.&#160; As a percentage of our pre-tax earnings, the income tax expense presented on our statement of operations is substantially less than one might normally expect to see, as we are able to utilize our deferred tax asset to offset any current federal income taxes due, and reduce the valuation allowance by an equal amount of the deferred tax asset utilized.&#160; The income tax expense recognized represents state income taxes for which we do not have deferred tax assets to offset&#160; We recognize interest and penalty expense associated with uncertain tax positions as a component of income tax expense in the consolidated statements of operations.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Earnings Per-Common Share&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Basic and diluted earnings per share are based on the weighted average number of shares of common stock and potential common stock outstanding during the period. Potential common stock, for the purposes of determining diluted earnings per share, includes the effects of dilutive unvested restricted stock, options to purchase common stock and convertible securities, if any. The effect of such potential common stock is computed using the treasury stock method or the if-converted method, as applicable.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Treasury Stock&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We account for treasury shares using the cost method. Purchases of shares of common stock are recorded at cost and result in a reduction of stockholders&#x2019; equity. We hold repurchased shares in treasury for general corporate purposes, including issuances under various employee compensation plans and from time to time may retire all or a portion of the treasury shares, reducing the issued and treasury share counts. When treasury shares are issued, we use a weighted average cost method. Purchase costs in excess of reissue price are treated as a reduction of retained earnings. Reissue price more than purchase costs is treated as additional paid-in-capital.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Commitments and Contingencies&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In the ordinary course of business, the Company may be subject to claims, lawsuits, and proceedings. Management evaluates such matters based on available information and, when necessary, records an accrual for estimated losses.&#160; As of June 30, 2025, the Company determined that there were no matters requiring accrual or disclosure as a commitment or contingency under the applicable accounting guidance.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Recent Accounting Guidance&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Recently Adopted Accounting Guidance&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In November 2023, FASB issued Accounting Standards Update ASU No. 2023-07, &lt;em&gt;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures. &lt;/em&gt;("ASU 2023-07&#x201d;). ASU 2023-07 improves reportable segment disclosure requirements for public business entities primarily through enhanced disclosures about significant segment expenses that are regularly provided to the chief operating decision-maker and included within each reported measure of segment profit (referred to as the "significant expense principle&#x201d;). We adopted this guidance effective for the annual period ended December 31, 2024.&#160; It did not have a material impact on our financial results of operations or financial position, other than the enhanced disclosures.&#160; At the same time as adopting this guidance, we also re-assessed our segmentation and determined we now have three reportable segments whereas we have historically had two reportable segments.&#160; In interim periods after December 31, 2024, the new guidance is now applied retrospectively for all prior periods presented in the financial statements, and prior period segment results are recast to conform to the current year presentation.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Recently Issued Accounting Pronouncements&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In December 2023, FASB issued ASU No. 2023-09, &lt;em&gt;Improvements to Income Tax Disclosures&lt;/em&gt; (&#x201c;ASU 2023-09&#x201d;), which requires that an entity disclose specific categories in the effective tax rate reconciliation as well as provide additional information for reconciling items that meet a quantitative threshold. Further, this ASU requires certain disclosures of state versus federal income tax expense and taxes paid. This ASU is effective for our Annual Report on Form 10-K for the year ending December 31, 2025, with early adoption permitted. We do not expect the adoption of ASU 2023-09 to have a material impact on our financial statements.&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In November 2024, FASB issued ASU 2024-03, &lt;em&gt;Income Statement &#x2013; Reporting Comprehensive Income &#x2013; Expense Disaggregation Disclosures (Subtopic 220-40)&lt;/em&gt; (&#x201c;ASU 2024-03&#x201d;), which will require that entities provide more granular footnote disclosures of the details contained in certain captions on the company&#x2019;s income statement, such as &#x201c;Selling, General and Administrative&#x201d; expenses.&#160; This new guidance is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027, with early adoption permitted.&#160; We have not yet determined all the effects that adoption of this new guidance will have on our statement of operations and related footnote disclosures.&#160; We do not expect its adoption to affect our net operating results or financial position.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In July 2025, FASB issued ASU 2025-05, &lt;em&gt;Financial Instruments &#x2013; Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets, &lt;/em&gt;which provides public companies with a practical expedient in developing reasonable and supportable forecasts as part of estimating expected credit losses. All entities may elect a practical expedient that assumes that current conditions as of the balance sheet date do not change for the remaining life of the asset. Early adoption is permitted. The amendment is effective for annual periods beginning after December 15, 2025, and interim periods within those annual reporting periods. Accordingly, it will first be applicable for our three-month period ending March 31, 2026.&#160; We are currently evaluating the impact of this standard on our consolidated financial statements and related disclosures.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In July 2025, the One Big Beautiful Bill Act (OBBBA) was signed into law. This legislation includes changes to the United States federal tax law, which may be subject to further clarification and the issuance of interpretive guidance. We are currently evaluating the impact of the legislation on our consolidated financial statements.&lt;/p&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1032">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The accompanying condensed consolidated balance sheet as of December 31, 2024, which has been derived from audited consolidated financial statements, and the unaudited interim condensed consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (&#x201c;GAAP&#x201d;) for interim financial statements and pursuant to the rules and regulations of the SEC for interim reporting and include the accounts of the Company and its consolidated subsidiaries. In the opinion of management, the accompanying unaudited condensed consolidated financial statements contain all adjustments (consisting only of normal recurring items) necessary to present fairly the consolidated financial position of the Company and its consolidated results of operations, changes in stockholders&#x2019; equity and cash flows. These interim condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and accompanying notes included in the Company&#x2019;s Annual Report on Form 10-K for the year ended December 31, 2024.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Certain prior year amounts have been reclassified to conform to the current presentation.&#160; The reclassifications are:&#160; (i) on our statements of operations, we now present revenues from each individual segment whereas the prior year revenues were all presented on a single line item; (ii) on our statements of operations, we now present interest expense and interest income separately whereas we presented a single amount &#x201c;interest expense, net&#x201d; in the prior year presentation and (iii) we recast the segment disclosures to present our procurement services as a separate segment consistent with the current year presentation whereas those results were aggregated into the systems integration segment in the prior year presentation.&#160; These reclassifications had no net effect on our reported results of operations, financial position or cash flows.&#160; &lt;/p&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1034">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The condensed consolidated financial statements include the accounts of the Company and its wholly owned subsidiary. All intercompany accounts and transactions have been eliminated in consolidation.&lt;/p&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="From2025-01-01to2025-06-30" id="fid_1035">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The Company&#x2019;s financial instruments consist primarily of cash and cash equivalents, including money market accounts, and debt.&#160;&lt;em&gt; &lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Based primarily on the short-term nature of cash and cash equivalents, we estimate that their carrying amount approximates their fair value at June 30, 2025 and December 31, 2024.&#160; We consider the fair value of our cash and cash equivalents, including money market accounts, to be measured using Level 1 inputs.&#160; &#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;As it does not have a quoted market price and its term extends beyond a year, requiring more judgment, we consider our debt balance to be measured using Level 2 inputs.&#160; As the debt bears a floating interest rate that is adjusted frequently in line with movements in prevailing interest rates that would be used to discount any future cash flows, we estimate that its carrying value approximates its fair value.&#160; &lt;/p&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:BusinessCombinationsPolicy contextRef="From2025-01-01to2025-06-30" id="fid_1036">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We allocate the purchase price of an acquired business to its identifiable assets and liabilities based on estimated fair values. The excess of the purchase price over the fair value of the assets acquired and liabilities assumed, if any, is recorded as goodwill.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We use all available information to estimate fair values. We typically engage outside appraisal firms to assist in the fair value determination of identifiable intangible assets such as customer contracts, leases, and any other significant assets or liabilities and contingent consideration. Preliminary purchase price allocation is adjusted, as necessary, up to one year after the acquisition closing date if management obtains more information regarding asset valuations and liabilities assumed.&lt;/p&gt;</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1037">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We recognize revenues when control of the promised goods or services is transferred to our customers in an amount that reflects the consideration we expect to be entitled to in exchange for those goods or services.&#160; Some of our contracts with customers contain multiple performance obligations. For these contracts, we account for individual performance obligations separately if they are distinct. The transaction price is allocated to the separate performance obligations based on relative stand-alone selling prices.&lt;/p&gt;</us-gaap:RevenueRecognitionPolicyTextBlock>
    <tssi:MaintenanceServicesPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1941">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate maintenance services revenues from fees that provide our customers with as-needed maintenance and repair services on modular data centers during the contract term. Our contract terms typically are one year in duration, are billed annually in advance, and are non-cancelable. As a result, we record deferred revenue (a contract liability) and recognize revenue from these services ratably over the contract term. We can mitigate our exposure to credit losses by discontinuing services in the event of non-payment.&#160;However, our history of non-payments and bad debt expenses has been insignificant.&lt;/p&gt;</tssi:MaintenanceServicesPolicyTextBlock>
    <tssi:IntegrationServicesPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1940">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate integration services revenues by providing our customers with customized systems and rack-level integration services. We recognize revenue upon shipment to the customer of the completed systems as this is when we have completed our services and when the customer obtains control of the promised goods.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Pursuant to a multi-year agreement signed in 2024, we also recognize revenue monthly at contractually based amounts for certain billable fixed and facility costs and trained staffing levels to support the weekly quantity of AI-enabled racks, with staffing fees reduced for any under-staffing. The fee for staffing is based on defined services as transferred to the customer and are not variable consideration because the customer&#x2019;s usage is known weekly and is not contingent on the occurrence of any future events or subject to any estimation.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We typically extend credit terms to our integration customers based on their creditworthiness and generally do not receive advance payments. As such, we record accounts receivable at the time of shipment, when our right to the consideration becomes unconditional. Accounts receivable from our integration customers are typically due within 30-105 days of invoicing. An allowance for credit losses is provided based on a periodic analysis of individual account balances, including an evaluation of days outstanding, payment history, recent payment trends, and our assessment of our customers&#x2019; creditworthiness. Our allowance for credit losses was $21,000 and $7,000 on June 30, 2025 and December 31, 2024, respectively.&#160; &lt;/p&gt;</tssi:IntegrationServicesPolicyTextBlock>
    <tssi:AllowanceForDoubtfulAccounts
      contextRef="AsOf2025-06-30"
      decimals="0"
      id="fid_1517"
      unitRef="USD">21000</tssi:AllowanceForDoubtfulAccounts>
    <tssi:AllowanceForDoubtfulAccounts
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1506"
      unitRef="USD">7000</tssi:AllowanceForDoubtfulAccounts>
    <tssi:EquipmentAndMaterialSalesPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1939">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate revenues under fixed price contracts from the sale of data center and related ancillary equipment or materials to customers in the United States. We recognize revenue when the product is shipped to the customer as that is when the customer obtains control of the promised goods and when we have completed our contractual obligations. Typically, we do not receive advance payments for equipment or material sales; however, if we do, we record the advance payment as deferred revenues. Normally we record accounts receivable at the time of shipment, when our right to the consideration has become unconditional. Accounts receivable from our equipment and material sales are typically due within 30-45 days of invoicing.&lt;/p&gt;</tssi:EquipmentAndMaterialSalesPolicyTextBlock>
    <tssi:DeploymentAndOtherServicesPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1938">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate revenues from fees we charge our customers for other services, including repairs or other services not covered under maintenance contracts; installation and servicing of equipment, including modular data centers; and other fixed-price services including repair, design and project management services, or the moving of equipment to a different location. In some cases, we arrange for a third party to perform &#x201c;break-fix&#x201d; and servicing of equipment upon customer request, and in these instances, we recognize revenue as the amount of any fees or commissions to which we expect to be entitled. Other services are typically invoiced upon completion of services or completion of milestones. We record accounts receivable at the time of completion when our right to consideration becomes unconditional.&lt;/p&gt;</tssi:DeploymentAndOtherServicesPolicyTextBlock>
    <tssi:ProcurementServicesPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1937">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We generate revenues from fees we charge our customers to procure third-party hardware, software and professional services on their behalf, some of which are then used in our integration services as we integrate these components to deliver a completed system to our customer. We recognize our procurement services revenues upon completion of the procurement activity. For any procurement activities in which we somehow transform the product, the revenues recognized on these transactions are the gross sales amount of the transaction, and we recognize offsetting costs of sales for any costs we incur to procure the related goods (&#x201c;gross deals&#x201d;).&#160; In some cases, we arrange for the purchase of third-party hardware, software or professional services that are to be provided directly to our customers by another party, we have no control of the goods before they are transferred to the customer and we do not transform the product in any way. In these instances, we are acting as an agent in the transaction and recognize revenue on a net basis, recording only the amount of any fee or commissions to which we expect to be entitled after paying the other party for the goods or services provided to the customer (&#x201c;net deals&#x201d;). Accounts receivable from our procurement activities are typically due within 80 days of invoicing.&#160; The majority of the procurement activities generally involve us transforming the product, and as such the majority of these transactions are recorded gross.&#160; In order to accelerate the time period in which we receive payment, we generally factor the procurement services receivables utilizing a program that we estimate has an effective annualized interest rate below the rate at which we could borrow funds.&#160; Regardless of whether the transaction is recorded as a gross deal or a net deal, the interest we are charged through the factoring program is based on the gross value of each transaction.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following table presents our revenues disaggregated by reportable segment and by product or service type (in &#x2019;000&#x2019;s):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three-Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;FACILITIES MANAGEMENT:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Maintenance revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,026&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,293&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,899&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,598&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Equipment sales, deployment and other services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;456&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;992&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;881&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,833&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Facilities Management revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,482&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,285&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,780&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,431&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SYSTEMS INTEGRATION:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Integration services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;9,486&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,960&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,670&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;7,083&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Systems Integration revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,486&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,960&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,970&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,083&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;PROCUREMENT:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Procurement services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;33,002&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,914&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;123,179&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,538&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Procurement revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;33,002&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,914&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;123,179&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,538&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;TOTAL REVENUES&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;43,970&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;12,159&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;142,929&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;28,052&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tssi:ProcurementServicesPolicyTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1055">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three-Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;FACILITIES MANAGEMENT:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Maintenance revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,026&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,293&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,899&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,598&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Equipment sales, deployment and other services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;456&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;992&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;881&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,833&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Facilities Management revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,482&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,285&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,780&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,431&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SYSTEMS INTEGRATION:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Integration services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;9,486&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,960&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,670&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;7,083&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Systems Integration revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,486&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,960&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,970&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,083&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;PROCUREMENT:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Procurement services&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;33,002&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,914&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;123,179&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,538&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Procurement revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;33,002&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,914&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;123,179&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,538&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;TOTAL REVENUES&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;43,970&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;12,159&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;142,929&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;28,052&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1452"
      unitRef="USD">1026000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1466"
      unitRef="USD">1293000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1469"
      unitRef="USD">1899000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_us-gaap_MaintenanceMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1470"
      unitRef="USD">2598000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember"
      decimals="-3"
      id="fid_1453"
      unitRef="USD">456000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember"
      decimals="-3"
      id="fid_1461"
      unitRef="USD">992000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember"
      decimals="-3"
      id="fid_1477"
      unitRef="USD">881000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_tssi_FacilitiesSegmentMember_tssi_EquipmentDeploymentAndOtherServicesMember"
      decimals="-3"
      id="fid_1478"
      unitRef="USD">1833000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1451"
      unitRef="USD">1482000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1459"
      unitRef="USD">2285000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1467"
      unitRef="USD">2780000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1468"
      unitRef="USD">4431000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1454"
      unitRef="USD">9486000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1462"
      unitRef="USD">4960000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1482"
      unitRef="USD">16670000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1480"
      unitRef="USD">7083000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1455"
      unitRef="USD">9486000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1463"
      unitRef="USD">4960000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1479"
      unitRef="USD">16970000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_tssi_IntegrationServicesMember_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1481"
      unitRef="USD">7083000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember"
      decimals="-3"
      id="fid_1456"
      unitRef="USD">33002000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember"
      decimals="-3"
      id="fid_1464"
      unitRef="USD">4914000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_tssi_ProcurementRevenuesSegmentMember"
      decimals="-3"
      id="fid_1471"
      unitRef="USD">123179000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_tssi_ProcurementRevenuesSegmentMember"
      decimals="-3"
      id="fid_1472"
      unitRef="USD">16538000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_tssi_ProcurementRevenuesSegmentMember"
      decimals="-3"
      id="fid_1457"
      unitRef="USD">33002000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_tssi_ProcurementRevenuesSegmentMember"
      decimals="-3"
      id="fid_1465"
      unitRef="USD">4914000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember"
      decimals="-3"
      id="fid_1473"
      unitRef="USD">123179000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_tssi_ProcurementServicesMember_tssi_ProcurementRevenuesSegmentMember"
      decimals="-3"
      id="fid_1474"
      unitRef="USD">16538000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1458"
      unitRef="USD">43970000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1460"
      unitRef="USD">12159000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1475"
      unitRef="USD">142929000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1476"
      unitRef="USD">28052000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <tssi:JudgmentsPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1038">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We consider several factors in determining that control transfers to the customer upon shipment of equipment or upon completion of our services. These factors include that legal title transfers to the customer, we have a present right to payment, and the customer has assumed the risks and rewards of ownership at the time of shipment or completion of the services.&lt;/p&gt;</tssi:JudgmentsPolicyTextBlock>
    <tssi:SalesTaxesPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1039">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Sales (and similar) taxes that are imposed on our sales and collected from customers are excluded from revenues.&lt;/p&gt;</tssi:SalesTaxesPolicyTextBlock>
    <us-gaap:ShippingAndHandlingCostPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1040">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Costs for shipping and handling activities, including those activities that occur subsequent to transfer of control to the customer, are recorded as cost of revenues and are expensed as incurred. We accrue costs for shipping and handling activities that occur after control of the promised good or service has been transferred to the customer.&lt;/p&gt;</us-gaap:ShippingAndHandlingCostPolicyTextBlock>
    <us-gaap:RevenueRecognitionDeferredRevenue contextRef="From2025-01-01to2025-06-30" id="fid_1041">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Remaining performance obligations include deferred revenue and amounts we expect to receive for goods and services that have not yet been delivered or provided under existing, non-cancellable contracts. For contracts that have an original duration of one year or less, we have elected the practical expedient applicable to such contracts and we do not disclose the transaction price for remaining performance obligations at the end of each reporting period and when we expect to recognize this revenue. As of June 30, 2025, deferred revenue of $3,832,000 includes:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:4%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:4%;vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;span style="font-family:symbol"&gt;&#xb7;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;$2,459,000 of our remaining performance obligations for our maintenance contracts, all of which are expected to be recognized within one year, and&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;span style="font-family:symbol"&gt;&#xb7;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;$1,373,000 relates to procurement and integration services where we have yet to complete our services for our customers. Of the deferred revenues related to procurement and integration services,&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160; &lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:12%;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:4%;vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;o&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;$874,000 is expected to be recognized within one year, and&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;o&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;$499,000 is expected to be recognized beyond one year.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Contract liabilities consisting of deferred revenues were $3,384,000 on December 31, 2024, and $3,370,000 on December 31, 2023.&#160; Substantially all of the recorded deferred revenues at December 31, 2024 and December 31, 2023 had been earned and recorded as revenues in the six month periods ended June 30, 2025 and June 30, 2024, respectively.&lt;/p&gt;</us-gaap:RevenueRecognitionDeferredRevenue>
    <us-gaap:DeferredRevenue
      contextRef="AsOf2025-06-30"
      decimals="0"
      id="fid_1518"
      unitRef="USD">3832000</us-gaap:DeferredRevenue>
    <us-gaap:DeferredRevenue
      contextRef="AsOf2025-06-30_tssi_MaintenanceContractsObligationsMember"
      decimals="0"
      id="fid_1519"
      unitRef="USD">2459000</us-gaap:DeferredRevenue>
    <us-gaap:DeferredRevenue
      contextRef="AsOf2025-06-30_tssi_ProcurementAndIntegrationServicesMember"
      decimals="0"
      id="fid_1520"
      unitRef="USD">1373000</us-gaap:DeferredRevenue>
    <tssi:DeferredRevenueRelatedToProcurementServices
      contextRef="AsOf2025-06-30_tssi_ProcurementAndIntegrationServicesMember"
      decimals="0"
      id="fid_1521"
      unitRef="USD">874000</tssi:DeferredRevenueRelatedToProcurementServices>
    <tssi:DeferredRevenueRelatedToIntegrationServices
      contextRef="AsOf2025-06-30_tssi_ProcurementAndIntegrationServicesMember"
      decimals="0"
      id="fid_1522"
      unitRef="USD">499000</tssi:DeferredRevenueRelatedToIntegrationServices>
    <us-gaap:ContractWithCustomerLiability
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1523"
      unitRef="USD">3384000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="AsOf2023-12-31"
      decimals="0"
      id="fid_1513"
      unitRef="USD">3370000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="From2025-01-01to2025-06-30" id="fid_1043">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We are currently economically dependent upon our relationship with a large US-based IT OEM (Original Equipment Manufacturer). If this relationship is unsuccessful or discontinues, our business and revenue will suffer. The loss of or a significant reduction in orders from this customer or the failure to provide adequate products or services to it would significantly reduce our revenue.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following customer accounted for a significant percentage of our revenues for the periods shown:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;US-based IT OEM&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;98&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;97&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;99&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;97&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;No other customers represented more than 10% of our revenues for any period presented. Our US-based IT OEM customer represented 98% of our accounts receivable at both June 30, 2025 and December 31, 2024. No other customer represented more than 10% of our accounts receivable at either of those dates.&lt;/p&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1056">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;US-based IT OEM&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;98&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;97&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;99&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;97&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <tssi:ConcentrationRiskPercentages
      contextRef="From2025-04-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"
      decimals="2"
      id="fid_1483"
      unitRef="Pure">0.98</tssi:ConcentrationRiskPercentages>
    <tssi:ConcentrationRiskPercentages
      contextRef="From2024-04-01to2024-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"
      decimals="2"
      id="fid_1484"
      unitRef="Pure">0.97</tssi:ConcentrationRiskPercentages>
    <tssi:ConcentrationRiskPercentages
      contextRef="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"
      decimals="2"
      id="fid_1485"
      unitRef="Pure">0.99</tssi:ConcentrationRiskPercentages>
    <tssi:ConcentrationRiskPercentages
      contextRef="From2024-01-01to2024-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"
      decimals="2"
      id="fid_1486"
      unitRef="Pure">0.97</tssi:ConcentrationRiskPercentages>
    <tssi:ConcentrationRiskPercentageOne
      contextRef="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_tssi_RevenuesMember"
      decimals="1"
      id="fid_1511"
      unitRef="Pure">0.10</tssi:ConcentrationRiskPercentageOne>
    <tssi:ConcentrationRiskPercentageOne
      contextRef="From2025-01-01to2025-06-30_tssi_USBasedITOEMCompanyMember_us-gaap_AccountsReceivableMember"
      decimals="2"
      id="fid_1512"
      unitRef="Pure">0.98</tssi:ConcentrationRiskPercentageOne>
    <tssi:NonRecourseFactoringPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1051">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We have entered into a factoring agreement with a financial institution to sell certain of our accounts receivable from a US-based IT OEM customer under a non-recourse agreement. Due to the extended payment terms from that customer, we use this factoring arrangement as the effective interest rate implicit in this arrangement is less than the rate at which we could borrow the funds to carry those receivables through their due date.&#160; Under the arrangement, we sell certain trade receivables on a non-recourse basis and account for the transaction as a sale of the receivable. The financial institution assumes the full risk of collection, without recourse to the Company in the event of a loss. Debtors are directed to send payments directly to the financial institution. The applicable receivables are removed from our consolidated balance sheet when we receive the cash proceeds. We do not service any factored accounts after the factoring has occurred. We utilize this factoring arrangement as part of our financing for working capital. The table below presents information relevant to this factoring program (in $&#x2019;000&#x2019;s):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three-Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Aggregate gross amount factored&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;72,391&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,835&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;193,484&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;50,978&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Financing fees paid&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;882&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;427&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,425&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;742&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Financing fees were recorded as interest expense in our consolidated statements of operations or in deferred costs if the interest related to projects for which revenue has not yet been recognized. The total amounts factored exceed our total recorded revenues, as the factoring fees apply to the gross value of receivables collected through the program, while we record only our agent fee on procurement contracts as revenue for any procurement activity that is shipped directly from third parties to the end customer.&#160; &lt;/p&gt;</tssi:NonRecourseFactoringPolicyTextBlock>
    <tssi:ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1942">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three-Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Aggregate gross amount factored&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;72,391&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,835&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;193,484&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;50,978&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Financing fees paid&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;882&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;427&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,425&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;742&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tssi:ScheduleOfInformationOfNonRecourseFactoringProgramTableTextBlock>
    <tssi:AggregateGrossAmountFactored
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1491"
      unitRef="USD">72391000</tssi:AggregateGrossAmountFactored>
    <tssi:AggregateGrossAmountFactored
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1492"
      unitRef="USD">28835000</tssi:AggregateGrossAmountFactored>
    <tssi:AggregateGrossAmountFactored
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1487"
      unitRef="USD">193484000</tssi:AggregateGrossAmountFactored>
    <tssi:AggregateGrossAmountFactored
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1488"
      unitRef="USD">50978000</tssi:AggregateGrossAmountFactored>
    <us-gaap:PaymentsOfFinancingCosts
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1493"
      unitRef="USD">882000</us-gaap:PaymentsOfFinancingCosts>
    <us-gaap:PaymentsOfFinancingCosts
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1494"
      unitRef="USD">427000</us-gaap:PaymentsOfFinancingCosts>
    <us-gaap:PaymentsOfFinancingCosts
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1489"
      unitRef="USD">2425000</us-gaap:PaymentsOfFinancingCosts>
    <us-gaap:PaymentsOfFinancingCosts
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1490"
      unitRef="USD">742000</us-gaap:PaymentsOfFinancingCosts>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="From2025-01-01to2025-06-30" id="fid_1042">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Stock-based compensation is measured at the grant date based on the fair value of the award and is recognized as expense ratably over the requisite service period, net of estimated forfeitures. For awards with performance-based vesting criteria, we recognize expense only once it is deemed probable that the performance criteria will be met.&#160; We award shares of restricted stock and stock options to employees, managers, executive officers, and directors for both incentive and retention purposes.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;During the three-month and six-month periods ended June 30, 2025, we incurred approximately $0.9 million and $1.9 million, respectively, of non-cash stock-based compensation expense.&#160; In the comparable three-month and six-month prior year periods ended June 30, 2024, we incurred approximately $0.2 million and $0.3 million, respectively, of non-cash stock-based compensation expense.&#160; In each period, the expense was included in selling, general and administrative expenses in the accompanying Condensed Consolidated Statements of Operations&lt;em&gt;.&lt;/em&gt;&#160; &lt;/p&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:OtherNoncashExpense
      contextRef="From2025-04-01to2025-06-30"
      decimals="-5"
      id="fid_1525"
      unitRef="USD">900000</us-gaap:OtherNoncashExpense>
    <us-gaap:OtherNoncashExpense
      contextRef="From2025-01-01to2025-06-30"
      decimals="-5"
      id="fid_1514"
      unitRef="USD">1900000</us-gaap:OtherNoncashExpense>
    <us-gaap:OtherNoncashExpense
      contextRef="From2024-04-01to2024-06-30"
      decimals="-5"
      id="fid_1530"
      unitRef="USD">200000</us-gaap:OtherNoncashExpense>
    <us-gaap:OtherNoncashExpense
      contextRef="From2024-01-01to2024-06-30"
      decimals="-5"
      id="fid_1529"
      unitRef="USD">300000</us-gaap:OtherNoncashExpense>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1044">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Cash and cash equivalents are comprised of cash in banks and highly liquid instruments with original maturities of three months or less, primarily consisting of bank time deposits. We had unrestricted cash of $36.8 million and $18.2 million, almost all of which was beyond FDIC insured limits on June 30, 2025 and December 31, 2024, respectively.&#160; At each of those dates, we additionally had $5.0 million of restricted cash in a money market account held by our bank as collateral for our outstanding bank debt, which also exceeded FDIC insured limits.&#160; Under the terms of the loan agreement, we can at any point request that the bank apply the deposit as a reduction of loan principal.&#160; This balance is presented separately on our balance sheet at June 30, 2025 and was classified with cash and cash equivalents at December 31, 2024.&#160; &lt;/p&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <tssi:UnrestrictedCashBalance
      contextRef="AsOf2025-06-30"
      decimals="-4"
      id="fid_1516"
      unitRef="USD">3680000</tssi:UnrestrictedCashBalance>
    <tssi:UnrestrictedCashBalance
      contextRef="AsOf2024-12-31"
      decimals="-5"
      id="fid_1505"
      unitRef="USD">18200000</tssi:UnrestrictedCashBalance>
    <tssi:CashDepositInAMoneyMarketAccount
      contextRef="AsOf2025-06-30"
      decimals="-5"
      id="fid_1526"
      unitRef="USD">5000000.0</tssi:CashDepositInAMoneyMarketAccount>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy contextRef="From2025-01-01to2025-06-30" id="fid_1045">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Accounts receivables are recorded at the invoiced amount and may bear interest in the event of late payment under certain contracts.&#160;&lt;/p&gt;</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <tssi:ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy contextRef="From2025-01-01to2025-06-30" id="fid_1046">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We estimate an allowance for credit losses based on estimated credit losses, based on factors related to the specific credit risk of each customer. Historically our credit losses have been minimal. We perform credit evaluations of new customers and may require prepayments or the use of bank instruments such as trade letters of credit to mitigate credit risk. We monitor outstanding amounts to limit our credit exposure to individual accounts. We continue to pursue collection even if we have fully provided for an account balance.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following table summarizes the changes in our allowance for credit losses (in &#x2019;000):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Balance at beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Additions charged to expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Recovery of amounts previously reserved&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Amounts written off&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;21&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tssi:ReceivablesAndTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1057">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Balance at beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Additions charged to expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Recovery of amounts previously reserved&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Amounts written off&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;21&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2023-12-31"
      decimals="-3"
      id="fid_1495"
      unitRef="USD">7000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1496"
      unitRef="USD">7000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1497"
      unitRef="USD">14000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1498"
      unitRef="USD">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <tssi:RecoveryOfAmountsPreviouslyReserved
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1499"
      unitRef="USD">0</tssi:RecoveryOfAmountsPreviouslyReserved>
    <tssi:RecoveryOfAmountsPreviouslyReserved
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1500"
      unitRef="USD">0</tssi:RecoveryOfAmountsPreviouslyReserved>
    <tssi:AmountsWrittenOff
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1501"
      unitRef="USD">0</tssi:AmountsWrittenOff>
    <tssi:AmountsWrittenOff
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1502"
      unitRef="USD">0</tssi:AmountsWrittenOff>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1504"
      unitRef="USD">21000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2024-06-30"
      decimals="-3"
      id="fid_1503"
      unitRef="USD">7000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:InventoryPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1047">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Inventories are stated at the lower of cost or net realizable value. Cost is determined using the first-in, first-out method for all purchased inventories. We write down obsolete inventory or inventory more than our estimated usage to its estimated realizable value less cost to sell, if less than its cost. Inherent in our estimates of net realizable value in determining inventory valuation are estimates related to future demand and technological obsolescence of our products. Any significant unanticipated changes in demand or technological developments could have a significant impact on the value of our inventories and our results of operations and financial position could be materially affected.&lt;/p&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1048">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Property and equipment are recorded at cost, including interest incurred during the construction phase of assets financed at least partly with debt. We provide for depreciation using the straight-line method over the estimated useful lives of the assets. Additions and major replacements or improvements are capitalized, while minor replacements and maintenance costs are charged to expense as incurred. Depreciation expense is included in operating expenses in the consolidated statements of operations. The cost and accumulated depreciation of assets sold or retired are removed from the accounts and any gain or loss is included in the results of operations for the period of the transaction.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1049">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We have recorded goodwill and intangible assets with definite lives, including customer relationships and acquired software, in conjunction with the acquisition of various businesses. These intangible assets are amortized based on their estimated economic lives. Goodwill represents the excess of the purchase price over the fair value of net identified tangible and intangible assets acquired and liabilities assumed, and it is not amortized. The recorded goodwill is allocated to the reporting unit to which the underlying transaction relates.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;U. S. GAAP requires us to perform an impairment test of goodwill on an annual basis or whenever events or circumstances make it more likely than not that impairment of goodwill may have occurred. As part of the annual impairment test, we review for indicators of impairment as &#x201c;Step Zero&#x201d; of the annual impairment test as defined by U.S. GAAP and if any exist, we compare the fair value of the reporting unit with its carrying amount. If that fair value exceeds the carrying amount, no impairment charge is required to be recorded. If the carrying value exceeds the reporting unit&#x2019;s fair value, we would recognize a goodwill impairment charge for the amount by which the carrying amount exceeds the reporting unit&#x2019;s fair value. However, the impairment loss recognized cannot exceed the total amount of goodwill allocated to that reporting unit. If necessary, the fair value of a reporting unit will be determined using a discounted cash flow analysis, which requires the use of estimates and assumptions. Significant assumptions that may be required include forecasted operating results and the determination of an appropriate discount rate. Actual results may differ from forecasted results, which may have a material impact on the conclusions reached.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We also review intangible assets with definite lives for impairment whenever events or circumstances indicate that the carrying amount may not be recoverable. If the sum of the expected undiscounted cash flows is less than the carrying value of the related asset, a loss is recognized for the difference between the fair value and carrying value of the intangible asset.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We have elected to use December 31 as our annual assessment date. As circumstances change that could affect the recoverability of the carrying amount of the assets during an interim period, we will evaluate our indefinite lived intangible assets for impairment.&#160;At our most recent annual assessment date of December 31, 2024, we identified no such indicators of impairment and determined there was no impairment at that date.&#160; In the quarter ended June 30, 2025, we considered relevant matters including macroeconomic and other conditions on our operations and noted no material triggering events or circumstances that occurred during that period that would indicate the carrying value of our goodwill or other long-lived intangible assets was impaired.&#160; On June 30, 2025 and December 31, 2024, the carrying value of goodwill was $0.8 million.&lt;/p&gt;</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
    <tssi:Goodwills
      contextRef="AsOf2025-06-30"
      decimals="-5"
      id="fid_1527"
      unitRef="USD">800000</tssi:Goodwills>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1050">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Deferred income taxes are provided for the temporary differences between the financial reporting and tax basis of the Company&#x2019;s assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. The U.S. net operating losses generated prior to 2018 and not utilized can be carried forward for 20 years to offset future taxable income. A full valuation allowance has been recorded against our net deferred tax assets, because we have concluded that under relevant accounting standards it is more likely than not that deferred tax assets will not be realizable. We re-evaluate this assessment quarterly and if we determine, after weighing all positive and all negative evidence available at that time, that it is more likely than not that the deferred tax asset will be realizable, we will remove the valuation allowance at that point in time.&#160; As a percentage of our pre-tax earnings, the income tax expense presented on our statement of operations is substantially less than one might normally expect to see, as we are able to utilize our deferred tax asset to offset any current federal income taxes due, and reduce the valuation allowance by an equal amount of the deferred tax asset utilized.&#160; The income tax expense recognized represents state income taxes for which we do not have deferred tax assets to offset&#160; We recognize interest and penalty expense associated with uncertain tax positions as a component of income tax expense in the consolidated statements of operations.&lt;/p&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1052">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Basic and diluted earnings per share are based on the weighted average number of shares of common stock and potential common stock outstanding during the period. Potential common stock, for the purposes of determining diluted earnings per share, includes the effects of dilutive unvested restricted stock, options to purchase common stock and convertible securities, if any. The effect of such potential common stock is computed using the treasury stock method or the if-converted method, as applicable.&lt;/p&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <tssi:TreasuryStockPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1053">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We account for treasury shares using the cost method. Purchases of shares of common stock are recorded at cost and result in a reduction of stockholders&#x2019; equity. We hold repurchased shares in treasury for general corporate purposes, including issuances under various employee compensation plans and from time to time may retire all or a portion of the treasury shares, reducing the issued and treasury share counts. When treasury shares are issued, we use a weighted average cost method. Purchase costs in excess of reissue price are treated as a reduction of retained earnings. Reissue price more than purchase costs is treated as additional paid-in-capital.&lt;/p&gt;</tssi:TreasuryStockPolicyTextBlock>
    <us-gaap:CommitmentsAndContingenciesPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1936">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In the ordinary course of business, the Company may be subject to claims, lawsuits, and proceedings. Management evaluates such matters based on available information and, when necessary, records an accrual for estimated losses.&#160; As of June 30, 2025, the Company determined that there were no matters requiring accrual or disclosure as a commitment or contingency under the applicable accounting guidance.&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1054">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Recently Adopted Accounting Guidance&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In November 2023, FASB issued Accounting Standards Update ASU No. 2023-07, &lt;em&gt;Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures. &lt;/em&gt;("ASU 2023-07&#x201d;). ASU 2023-07 improves reportable segment disclosure requirements for public business entities primarily through enhanced disclosures about significant segment expenses that are regularly provided to the chief operating decision-maker and included within each reported measure of segment profit (referred to as the "significant expense principle&#x201d;). We adopted this guidance effective for the annual period ended December 31, 2024.&#160; It did not have a material impact on our financial results of operations or financial position, other than the enhanced disclosures.&#160; At the same time as adopting this guidance, we also re-assessed our segmentation and determined we now have three reportable segments whereas we have historically had two reportable segments.&#160; In interim periods after December 31, 2024, the new guidance is now applied retrospectively for all prior periods presented in the financial statements, and prior period segment results are recast to conform to the current year presentation.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Recently Issued Accounting Pronouncements&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In December 2023, FASB issued ASU No. 2023-09, &lt;em&gt;Improvements to Income Tax Disclosures&lt;/em&gt; (&#x201c;ASU 2023-09&#x201d;), which requires that an entity disclose specific categories in the effective tax rate reconciliation as well as provide additional information for reconciling items that meet a quantitative threshold. Further, this ASU requires certain disclosures of state versus federal income tax expense and taxes paid. This ASU is effective for our Annual Report on Form 10-K for the year ending December 31, 2025, with early adoption permitted. We do not expect the adoption of ASU 2023-09 to have a material impact on our financial statements.&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In November 2024, FASB issued ASU 2024-03, &lt;em&gt;Income Statement &#x2013; Reporting Comprehensive Income &#x2013; Expense Disaggregation Disclosures (Subtopic 220-40)&lt;/em&gt; (&#x201c;ASU 2024-03&#x201d;), which will require that entities provide more granular footnote disclosures of the details contained in certain captions on the company&#x2019;s income statement, such as &#x201c;Selling, General and Administrative&#x201d; expenses.&#160; This new guidance is effective for annual reporting periods beginning after December 15, 2026, and interim reporting periods beginning after December 15, 2027, with early adoption permitted.&#160; We have not yet determined all the effects that adoption of this new guidance will have on our statement of operations and related footnote disclosures.&#160; We do not expect its adoption to affect our net operating results or financial position.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In July 2025, FASB issued ASU 2025-05, &lt;em&gt;Financial Instruments &#x2013; Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets, &lt;/em&gt;which provides public companies with a practical expedient in developing reasonable and supportable forecasts as part of estimating expected credit losses. All entities may elect a practical expedient that assumes that current conditions as of the balance sheet date do not change for the remaining life of the asset. Early adoption is permitted. The amendment is effective for annual periods beginning after December 15, 2025, and interim periods within those annual reporting periods. Accordingly, it will first be applicable for our three-month period ending March 31, 2026.&#160; We are currently evaluating the impact of this standard on our consolidated financial statements and related disclosures.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In July 2025, the One Big Beautiful Bill Act (OBBBA) was signed into law. This legislation includes changes to the United States federal tax law, which may be subject to further clarification and the issuance of interpretive guidance. We are currently evaluating the impact of the legislation on our consolidated financial statements.&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1021">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;Note 2 &lt;/strong&gt;&#x2013;&lt;strong&gt; Supplemental Balance Sheet Information&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Receivables&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Contract and other receivables consisted of the following (in &#x2018;000&#x2019;s):&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Contract and other receivables&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,018&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,210&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(21 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(7 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Contracts and other receivables, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;13,997&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;16,203&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Contract and other receivables, net were $3,527,000&#160;as of December 31, 2023.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Inventories&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We state inventories at the lower of cost or net realizable value, using the first-in-first-out-method (in &#x2018;000&#x2019;s) as follows:&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Raw Materials&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;78&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;201&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Work in Process&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;155&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;120&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Finished Goods&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,377&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,373&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(21&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(21&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Inventories, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;14,589&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;17,673&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Goodwill and Intangible Assets&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Goodwill and Intangible Assets consisted of the following (in &#x2018;000&#x2019;s):&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025 (unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Gross&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Gross&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Carrying&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Accumulated&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Carrying&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Accumulated&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Amortization&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Amortization&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Intangible assets not subject to amortization:&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;780&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;780&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Intangible assets subject to amortization:&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Customer relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;906&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(906 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;906&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(906 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Acquired software&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;234&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(234 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;234&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(234 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Goodwill is attributable to the following reportable segments (in &#x2018;000&#x2019;s): &#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Facilities Management unit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;643&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;643&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Systems Integration unit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;137&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;137&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;780&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;780&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We recognized no amortization expense related to intangible assets in the three-month or six-month periods ended June 30, 2025 or in the comparable periods of 2024 as all long-lived intangible assets subject to amortization were fully amortized.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Property and Equipment&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Property and equipment consisted of the following (in &#x2019;000&#x2019;s):&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Estimated Useful Lives&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025 (unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;(years)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Trade equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;5&#x2013;10&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,680&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;763&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;2&#x2013;10&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;29,909&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,328&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;5-7&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;277&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;140&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;3&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;554&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,363&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Construction in Process&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;N/A&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,469&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;6,701&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;37,889&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;12,295&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less accumulated depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,601&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(3,704&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Property and equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;35,288&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,591&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Depreciation of property and equipment and amortization of leasehold improvements and software totaled $844,000 and $117,000 for the three-month periods ended June 30, 2025 and 2024, respectively. Depreciation of property and equipment and amortization of leasehold improvements and software totaled $1,054,000 and $188,000 for the six-month periods ended June 30, 2025 and 2024, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following table presents interest capitalized as property and equipment, as the related debt was used to finance a portion of the capital expenditures (in $000&#x2019;s):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three-Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Capitalized interest&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;107&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;220&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Other Assets&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Other assets, non-current is comprised of the following amounts (in $000&#x2019;s):&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deposits&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,109&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,109&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other non-current assets, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,459&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,678&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Balance at end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,568&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,787&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Accounts Payable and Accrued Expenses&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Accounts payable and accrued expenses consisted of the following (in &#x2019;000&#x2019;s):&#160;&#160;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025 (unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accounts payable&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;69,281&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;33,491&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accrued expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,674&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,802&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Compensation, benefits and related taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,616&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,774&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other accrued expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;449&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;273&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total accounts payable and accrued expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;82,020&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;53,340&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;em&gt;Long-Term Debt&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Long-term debt consisted of the following (in &#x2019;000&#x2019;s):&#160;&#160;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025 (unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Borrowed funds (bank loan; see Note 3)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;20,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;8,667&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deferred debt issuance costs&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(459 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(467 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Long-term debt, non-current&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;19,541&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,200&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Amortization of deferred debt issuance costs began in the quarter ended June 30, 2025 once construction was substantially complete.&#160; We amortized $8,000 of the deferred financing costs to interest expense during the quarter ended June 30, 2024, with no such amortization in the prior year period.&#160;&#160;&lt;/p&gt;</us-gaap:SupplementalBalanceSheetDisclosuresTextBlock>
    <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1058">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Contract and other receivables&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,018&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,210&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(21 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(7 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Contracts and other receivables, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;13,997&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;16,203&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1532"
      unitRef="USD">14018000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1531"
      unitRef="USD">16210000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1534"
      unitRef="USD">21000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1533"
      unitRef="USD">7000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:ReceivablesNetCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1536"
      unitRef="USD">13997000</us-gaap:ReceivablesNetCurrent>
    <us-gaap:ReceivablesNetCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1535"
      unitRef="USD">16203000</us-gaap:ReceivablesNetCurrent>
    <tssi:ContractAssetsIncludesAccountsReceivable
      contextRef="AsOf2023-12-31"
      decimals="0"
      id="fid_1614"
      unitRef="USD">3527000</tssi:ContractAssetsIncludesAccountsReceivable>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1059">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Raw Materials&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;78&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;201&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Work in Process&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;155&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;120&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Finished Goods&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14,377&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,373&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(21&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(21&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Inventories, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;14,589&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;17,673&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsAndSupplies
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1538"
      unitRef="USD">78000</us-gaap:InventoryRawMaterialsAndSupplies>
    <us-gaap:InventoryRawMaterialsAndSupplies
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1537"
      unitRef="USD">201000</us-gaap:InventoryRawMaterialsAndSupplies>
    <us-gaap:InventoryWorkInProcess
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1540"
      unitRef="USD">155000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1539"
      unitRef="USD">120000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryFinishedGoods
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1545"
      unitRef="USD">14377000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1546"
      unitRef="USD">17373000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1541"
      unitRef="USD">21000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1542"
      unitRef="USD">21000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNet
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1544"
      unitRef="USD">14589000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1543"
      unitRef="USD">17673000</us-gaap:InventoryNet>
    <us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1060">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025 (unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Gross&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Gross&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Carrying&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Accumulated&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Carrying&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Accumulated&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Amortization&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Amortization&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Intangible assets not subject to amortization:&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;780&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;780&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;em&gt;Intangible assets subject to amortization:&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Customer relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;906&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(906 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;906&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(906 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Acquired software&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;234&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(234 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;234&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(234 &lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Facilities Management unit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;643&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;643&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Systems Integration unit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;137&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;137&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;780&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;780&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2024-12-31_us-gaap_GoodwillMember"
      decimals="-3"
      id="fid_1553"
      unitRef="USD">780000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2025-06-30_us-gaap_GoodwillMember"
      decimals="-3"
      id="fid_1548"
      unitRef="USD">0</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2025-06-30_us-gaap_GoodwillMember"
      decimals="-3"
      id="fid_1554"
      unitRef="USD">780000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2024-12-31_us-gaap_GoodwillMember"
      decimals="-3"
      id="fid_1547"
      unitRef="USD">0</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2024-12-31_us-gaap_CustomerRelationshipsMember"
      decimals="-3"
      id="fid_1555"
      unitRef="USD">906000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2024-12-31_us-gaap_CustomerRelationshipsMember"
      decimals="-3"
      id="fid_1549"
      unitRef="USD">-906000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2025-06-30_us-gaap_CustomerRelationshipsMember"
      decimals="-3"
      id="fid_1556"
      unitRef="USD">906000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2025-06-30_us-gaap_CustomerRelationshipsMember"
      decimals="-3"
      id="fid_1550"
      unitRef="USD">-906000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2024-12-31_us-gaap_ComputerSoftwareIntangibleAssetMember"
      decimals="-3"
      id="fid_1557"
      unitRef="USD">234000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2024-12-31_us-gaap_ComputerSoftwareIntangibleAssetMember"
      decimals="-3"
      id="fid_1551"
      unitRef="USD">-234000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2025-06-30_us-gaap_ComputerSoftwareIntangibleAssetMember"
      decimals="-3"
      id="fid_1558"
      unitRef="USD">234000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2025-06-30_us-gaap_ComputerSoftwareIntangibleAssetMember"
      decimals="-3"
      id="fid_1552"
      unitRef="USD">-234000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:GoodwillGross
      contextRef="AsOf2024-12-31_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1559"
      unitRef="USD">643000</us-gaap:GoodwillGross>
    <us-gaap:GoodwillGross
      contextRef="AsOf2025-06-30_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1560"
      unitRef="USD">643000</us-gaap:GoodwillGross>
    <us-gaap:GoodwillGross
      contextRef="AsOf2024-12-31_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1561"
      unitRef="USD">137000</us-gaap:GoodwillGross>
    <us-gaap:GoodwillGross
      contextRef="AsOf2025-06-30_tssi_SystemIntegrationServicesSegmentMember"
      decimals="-3"
      id="fid_1562"
      unitRef="USD">137000</us-gaap:GoodwillGross>
    <us-gaap:GoodwillGross
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1563"
      unitRef="USD">780000</us-gaap:GoodwillGross>
    <us-gaap:GoodwillGross
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1564"
      unitRef="USD">780000</us-gaap:GoodwillGross>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1061">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Estimated Useful Lives&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025 (unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;(years)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Trade equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;5&#x2013;10&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,680&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;763&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;2&#x2013;10&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;29,909&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,328&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;5-7&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;277&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;140&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;3&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;554&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,363&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Construction in Process&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;N/A&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,469&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;6,701&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;37,889&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;12,295&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less accumulated depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(2,601&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(3,704&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Property and equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;35,288&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,591&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three-Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended June 30&lt;/strong&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Capitalized interest&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;107&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;220&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <tssi:PropertyPlantAndEquipmentEstimatedUsefulLife
      contextRef="From2025-01-01to2025-06-30_tssi_TradeEquipmentMember_tssi_BottomMember"
      id="fid_1565">P5Y</tssi:PropertyPlantAndEquipmentEstimatedUsefulLife>
    <tssi:PropertyPlantAndEquipmentEstimatedUsefulLife
      contextRef="From2025-01-01to2025-06-30_tssi_TopMember_us-gaap_LeaseholdImprovementsMember"
      id="fid_1567">P10Y</tssi:PropertyPlantAndEquipmentEstimatedUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2025-06-30_tssi_TradeEquipmentMember_tssi_BottomMember"
      decimals="-3"
      id="fid_1573"
      unitRef="USD">5680000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2024-12-31_tssi_TradeEquipmentMember_tssi_BottomMember"
      decimals="-3"
      id="fid_1572"
      unitRef="USD">763000</us-gaap:PropertyPlantAndEquipmentGross>
    <tssi:PropertyPlantAndEquipmentEstimatedUsefulLife
      contextRef="From2025-01-01to2025-06-30_tssi_BottomMember_us-gaap_LeaseholdImprovementsMember"
      id="fid_1566">P2Y</tssi:PropertyPlantAndEquipmentEstimatedUsefulLife>
    <tssi:PropertyPlantAndEquipmentEstimatedUsefulLife
      contextRef="From2025-01-01to2025-06-30_tssi_TradeEquipmentMember_tssi_TopMember"
      id="fid_1586">P10Y</tssi:PropertyPlantAndEquipmentEstimatedUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2025-06-30_us-gaap_LeaseholdImprovementsMember"
      decimals="-4"
      id="fid_1575"
      unitRef="USD">299090000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2024-12-31_us-gaap_LeaseholdImprovementsMember"
      decimals="-3"
      id="fid_1574"
      unitRef="USD">2328000</us-gaap:PropertyPlantAndEquipmentGross>
    <tssi:PropertyPlantAndEquipmentEstimatedUsefulLife
      contextRef="From2025-01-01to2025-06-30_tssi_FurnitureAndFixtureMember_tssi_BottomMember"
      id="fid_1587">P5Y</tssi:PropertyPlantAndEquipmentEstimatedUsefulLife>
    <tssi:PropertyPlantAndEquipmentEstimatedUsefulLife
      contextRef="From2025-01-01to2025-06-30_us-gaap_FurnitureAndFixturesMember_tssi_TopMember"
      id="fid_1568">P7Y</tssi:PropertyPlantAndEquipmentEstimatedUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2025-06-30_us-gaap_FurnitureAndFixturesMember_tssi_TopMember"
      decimals="-3"
      id="fid_1577"
      unitRef="USD">277000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2024-12-31_us-gaap_FurnitureAndFixturesMember_tssi_TopMember"
      decimals="-4"
      id="fid_1576"
      unitRef="USD">1400000</us-gaap:PropertyPlantAndEquipmentGross>
    <tssi:PropertyPlantAndEquipmentEstimatedUsefulLife
      contextRef="From2025-01-01to2025-06-30_tssi_ComputerEquipmentAndSoftwareMember"
      id="fid_1569">P3Y</tssi:PropertyPlantAndEquipmentEstimatedUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2025-06-30_tssi_ComputerEquipmentAndSoftwareMember"
      decimals="-3"
      id="fid_1579"
      unitRef="USD">554000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2024-12-31_tssi_ComputerEquipmentAndSoftwareMember"
      decimals="-3"
      id="fid_1578"
      unitRef="USD">2363000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2025-06-30_tssi_ConstructionInProcessMember"
      decimals="0"
      id="fid_1581"
      unitRef="USD">1469</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2024-12-31_tssi_ConstructionInProcessMember"
      decimals="-3"
      id="fid_1580"
      unitRef="USD">6701000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1584"
      unitRef="USD">37889000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1585"
      unitRef="USD">12295000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1571"
      unitRef="USD">2601000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1570"
      unitRef="USD">3704000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1583"
      unitRef="USD">35288000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1582"
      unitRef="USD">8591000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="From2025-04-01to2025-06-30"
      decimals="0"
      id="fid_1618"
      unitRef="USD">844000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="From2024-04-01to2024-06-30"
      decimals="0"
      id="fid_1616"
      unitRef="USD">117000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="From2025-01-01to2025-06-30"
      decimals="0"
      id="fid_1615"
      unitRef="USD">1054000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="From2024-01-01to2024-06-30"
      decimals="0"
      id="fid_1619"
      unitRef="USD">188000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:InterestCostsCapitalized
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1590"
      unitRef="USD">107000</us-gaap:InterestCostsCapitalized>
    <us-gaap:InterestCostsCapitalized
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1591"
      unitRef="USD">0</us-gaap:InterestCostsCapitalized>
    <us-gaap:InterestCostsCapitalized
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1588"
      unitRef="USD">220000</us-gaap:InterestCostsCapitalized>
    <us-gaap:InterestCostsCapitalized
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1589"
      unitRef="USD">0</us-gaap:InterestCostsCapitalized>
    <us-gaap:ScheduleOfOtherAssetsTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1062">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deposits&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,109&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,109&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other non-current assets, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,459&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,678&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Balance at end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,568&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,787&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfOtherAssetsTableTextBlock>
    <us-gaap:DepositsAssets
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1592"
      unitRef="USD">2109000</us-gaap:DepositsAssets>
    <us-gaap:DepositsAssets
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1593"
      unitRef="USD">2109000</us-gaap:DepositsAssets>
    <tssi:OtherNonCurrentAssetsNet
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1595"
      unitRef="USD">2459000</tssi:OtherNonCurrentAssetsNet>
    <tssi:OtherNonCurrentAssetsNet
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1594"
      unitRef="USD">2678000</tssi:OtherNonCurrentAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1597"
      unitRef="USD">4568000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1596"
      unitRef="USD">4787000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1063">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025 (unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accounts payable&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;69,281&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;33,491&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accrued expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,674&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,802&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Compensation, benefits and related taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,616&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,774&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other accrued expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;449&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;273&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total accounts payable and accrued expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;82,020&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;53,340&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccountsPayableCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1599"
      unitRef="USD">69281000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1598"
      unitRef="USD">33491000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1601"
      unitRef="USD">9674000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="AsOf2024-12-31"
      decimals="-4"
      id="fid_1600"
      unitRef="USD">178020000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1603"
      unitRef="USD">2616000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1602"
      unitRef="USD">1774000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1605"
      unitRef="USD">449000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1604"
      unitRef="USD">273000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1607"
      unitRef="USD">82020000</us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1606"
      unitRef="USD">53340000</us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent>
    <us-gaap:ScheduleOfDebtTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1078">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025 (unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Borrowed funds (bank loan; see Note 3)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;20,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;8,667&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Deferred debt issuance costs&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(459 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(467 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Long-term debt, non-current&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;19,541&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;8,200&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfDebtTableTextBlock>
    <us-gaap:BorrowingsUnderGuaranteedInvestmentAgreements
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1609"
      unitRef="USD">20000000</us-gaap:BorrowingsUnderGuaranteedInvestmentAgreements>
    <us-gaap:BorrowingsUnderGuaranteedInvestmentAgreements
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1608"
      unitRef="USD">8667000</us-gaap:BorrowingsUnderGuaranteedInvestmentAgreements>
    <us-gaap:AccumulatedAmortizationDeferredFinanceCosts
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1611"
      unitRef="USD">459000</us-gaap:AccumulatedAmortizationDeferredFinanceCosts>
    <us-gaap:AccumulatedAmortizationDeferredFinanceCosts
      contextRef="AsOf2024-12-31"
      decimals="-4"
      id="fid_1610"
      unitRef="USD">4670000</us-gaap:AccumulatedAmortizationDeferredFinanceCosts>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1613"
      unitRef="USD">19541000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1612"
      unitRef="USD">8200000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="From2025-01-01to2025-06-30"
      decimals="0"
      id="fid_1617"
      unitRef="USD">8000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:LongTermDebtTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1022">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;Note 3 - Long-Term Debt &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;&#160;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;In May 2024, we renewed our revolving line of credit (the &#x201c;revolving line of credit&#x201d;) with Susser Bank (&#x201c;Lender&#x201d;) pursuant to a Business Loan Agreement (Asset Based) effective May 5, 2024. The obligations under the revolving line of credit were secured by substantially all of our accounts receivable. Our wholly owned subsidiaries jointly and severally guaranteed our obligations under the revolving line of credit. We terminated the revolving line of credit on December 31, 2024 when we entered a new credit agreement with Susser Bank described below.&#160; There were no borrowings outstanding on the revolving credit facility at any point during the periods presented.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;On December 31, 2024, we entered into a new Credit Agreement (the &#x201c;Credit Agreement&#x201d;) with Susser Bank to fund improvements at the Georgetown, Texas location we leased on December 2, 2024 to which we have now moved our headquarters and the majority of our operations.&#160; The Credit Agreement provides for a $20.0 million term loan facility, and the option for additional incremental term loans of up to $5.0 million (the &#x201c;accordion feature&#x201d;), pending Lender approval.&#160; Upon closing on December 31, 2024, we borrowed $8.7 million, with $5.0 million of that amount deposited in a required interest-bearing cash collateral account, $3.4 million reimbursed to us for capital expenditures previously funded with our operating cash, and $0.3 million funding loan closing costs.&#160; In the three-month period ended June 30, 2025, we borrowed the remaining $11.3 million of available funds, bringing the total amount borrowed to $20.0 million.&#160; Per its terms, we made interest-only payments through July 5, 2025.&#160; On July 5, 2025, the loan converted to a fully amortizing term loan with a final due date of January 5, 2030 and monthly payments of approximately $437,000 beginning on August 5, 2025.&#160; As the loan bears a floating interest rate, the total payment will fluctuate from time to time with prevailing interest rates.&#160; The loan is secured by a $5.0 million cash deposit held in a money market account with related earnings payable to the Company, and all equipment that is not permanently attached to, and which may be removed from our Georgetown, Texas facility and headquarters building without significantly damaging the leased building.&#160; Interest accrues at a rate per annum equal to 1-month SOFR plus 3.0%, subject to a 4.5% floor.&#160; Upon an event of default, interest would accrue at a rate equal to the normal rate plus 2.0%.&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The Credit Agreement includes customary affirmative covenants for secured transactions of this type, including maintaining adequate books and records, periodic financial reporting, compliance with laws, maintenance of insurance, maintenance of assets, timely payment of taxes, and notices of adverse events. It also includes customary negative covenants including incurrence of other indebtedness, mergers, consolidations and transfers of assets and liens on our assets. The Loan Agreement and ancillary documents also include customary events of default, including payment defaults, failure to perform or observe terms, covenants or agreements included in the Loan Agreement and ancillary documents, insolvency and bankruptcy defaults, judgment defaults, material adverse change defaults, and change of ownership defaults.&#160; Financial covenants require us to maintain a leverage ratio, as defined in the agreement, of no more than 3.75x through September 30, 2025; 2.75x from then to September 30, 2026; and 2.00x after that, and a debt service coverage ratio, as defined in the agreement, of at least 1.25x.&#160; We were in compliance with all covenants at June 30, 2025.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;As of June 30, 2025, all available funds have been drawn on the $20.0 million loan. If we utilize the accordion feature, we may borrow up to an additional $5.0 million to reimburse us for additional construction costs.&#160; If we were to borrow those additional funds, the loan would be re-amortized using the new principal amount and the original due date.&#160; &#160;&#160;&#160;&lt;/p&gt;</us-gaap:LongTermDebtTextBlock>
    <tssi:LineOfCreditFacilityMinimumLiquidityThreshold
      contextRef="AsOf2024-12-31_tssi_CreditAgreementMember"
      decimals="-5"
      id="fid_1626"
      unitRef="USD">20000000.0</tssi:LineOfCreditFacilityMinimumLiquidityThreshold>
    <us-gaap:Cash
      contextRef="AsOf2025-06-30_tssi_CreditAgreementMember"
      decimals="-5"
      id="fid_1850"
      unitRef="USD">5000000.0</us-gaap:Cash>
    <tssi:CreditAgreementDescription
      contextRef="From2025-01-01to2025-06-30_tssi_CreditAgreementMember"
      id="fid_1625">we borrowed $8.7 million, with $5.0 million of that amount deposited in a required interest-bearing cash collateral account, $3.4 million reimbursed to us for capital expenditures previously funded with our operating cash, and $0.3 million funding loan closing costs</tssi:CreditAgreementDescription>
    <us-gaap:ProceedsFromOtherDebt
      contextRef="From2025-04-01to2025-06-30"
      decimals="-5"
      id="fid_1844"
      unitRef="USD">11300000</us-gaap:ProceedsFromOtherDebt>
    <us-gaap:RepaymentsOfOtherLongTermDebt
      contextRef="From2025-04-01to2025-06-30"
      decimals="-5"
      id="fid_1845"
      unitRef="USD">20000000.0</us-gaap:RepaymentsOfOtherLongTermDebt>
    <us-gaap:RepaymentsOfOtherDebt
      contextRef="From2025-01-01to2025-06-30"
      decimals="0"
      id="fid_1847"
      unitRef="USD">437000</us-gaap:RepaymentsOfOtherDebt>
    <tssi:LineOfCreditFacilityCurrentBorrowingCapacityIncrement
      contextRef="AsOf2024-12-31_tssi_CreditAgreementMember"
      decimals="-5"
      id="fid_1628"
      unitRef="USD">5000000.0</tssi:LineOfCreditFacilityCurrentBorrowingCapacityIncrement>
    <us-gaap:DebtInstrumentInterestRateEffectivePercentage
      contextRef="AsOf2024-12-31_tssi_CreditAgreementMember"
      decimals="2"
      id="fid_1622"
      unitRef="Pure">0.030</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
    <tssi:FloorInterestRatePerAnnumOfDebt
      contextRef="AsOf2024-12-31_tssi_CreditAgreementMember"
      decimals="3"
      id="fid_1623"
      unitRef="Pure">0.045</tssi:FloorInterestRatePerAnnumOfDebt>
    <tssi:DefaultInterestRatePerAnnumOfDebt
      contextRef="AsOf2024-12-31_tssi_CreditAgreementMember"
      decimals="2"
      id="fid_1624"
      unitRef="Pure">0.020</tssi:DefaultInterestRatePerAnnumOfDebt>
    <tssi:LeverageRatioDescription
      contextRef="From2025-01-01to2025-06-30_tssi_CreditAgreementMember"
      id="fid_1627">Financial covenants require us to maintain a leverage ratio, as defined in the agreement, of no more than 3.75x through September 30, 2025; 2.75x from then to September 30, 2026; and 2.00x after that, and a debt service coverage ratio, as defined in the agreement, of at least 1.25x</tssi:LeverageRatioDescription>
    <us-gaap:LongTermDebtAverageAmountOutstanding
      contextRef="From2025-01-01to2025-06-30_tssi_CreditAgreementMember"
      decimals="-5"
      id="fid_1852"
      unitRef="USD">20000000.0</us-gaap:LongTermDebtAverageAmountOutstanding>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="AsOf2025-06-30_tssi_CreditAgreementMember"
      decimals="-5"
      id="fid_1854"
      unitRef="USD">5000000.0</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:LeasesOfLesseeDisclosureTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1023">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;Note 4- Leasing Arrangements&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We have operating leases for our office and integration facilities in both Round Rock, Texas and Georgetown, Texas as well as for certain equipment. Our leases have remaining lease terms of 9 to 119 months. As of June 30, 2025, we have not entered into any lease arrangement classified as a finance lease.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;We determine if an arrangement is a lease at its inception. Operating leases are included in the lease right-of-use assets, current lease liabilities and lease liabilities, non-current, on our consolidated balance sheets. We have elected an accounting policy to not recognize short-term leases (one year or less) on the balance sheet. We also elected the package of practical expedients which applies to leases that commenced before the adoption date. By electing the package of practical expedients, we did not need to reassess whether any existing contracts are or contain leases, the lease classification for any existing leases and initial direct costs for any existing leases.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Right-of-use assets and operating lease liabilities are recognized based on the present value of future minimum lease payments over the lease term at commencement date. When the implicit rate of the lease is not provided or cannot be determined, we use our incremental borrowing rate based on the information available at the commencement date to determine the present value of future payments. Lease terms may include options to extend or terminate the lease when it is reasonably certain that we will exercise those options. Lease expense for minimum lease payments is recognized on a straight-line basis over the lease term, with variable lease expense recognized in the period in which the costs are incurred. Variable lease expense is comprised of common are maintenance (CAM), property taxes and property insurance.&#160; Components of lease expense and other information is as follows (in &#x2018;000&#x2019;s):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating lease cost:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Operating lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;973&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;236&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,964&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;457&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Variable lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;202&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;114&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;324&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;227&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total operating lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,175&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;350&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2,288&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;684&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Cash paid for operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;420&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;136&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;656&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;265&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;New right-of-use assets &#x2013; operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following presents information regarding the Company's operating leases as of June 30:&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average remaining lease term &#x2013;&#160;operating leases (months)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;109&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;56&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average discount rate &#x2013;&#160;operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Future minimum lease payments under non-cancellable leases as of June 30, 2025 were as follows (in &#x2018;000&#x2019;s):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Fiscal&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Year&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,813&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,662&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,777&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2028&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,905&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2029&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,265&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2030&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,538&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,678&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total minimum future lease payments&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;34,638&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Less imputed interest&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(10,099 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;24,539&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Reported as of June 30, 2025 (in &#x2018;000&#x2019;s) :&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Current portion of lease liability&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,891&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Non-current portion of lease liability&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;22,648&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;24,539&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:LeasesOfLesseeDisclosureTextBlock>
    <tssi:OperatingLeaseRemainingLeaseTerm
      contextRef="From2025-01-01to2025-06-30_tssi_BottomMember"
      id="fid_1666">P9Y</tssi:OperatingLeaseRemainingLeaseTerm>
    <tssi:OperatingLeaseRemainingLeaseTerm
      contextRef="From2025-01-01to2025-06-30_tssi_TopMember"
      id="fid_1667">P119Y</tssi:OperatingLeaseRemainingLeaseTerm>
    <us-gaap:LeaseCostTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1064">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating lease cost:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Operating lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;973&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;236&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,964&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;457&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Variable lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;202&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;114&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;324&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;227&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total operating lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,175&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;350&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2,288&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;684&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Cash paid for operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;420&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;136&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;656&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;265&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;New right-of-use assets &#x2013; operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1642"
      unitRef="USD">973000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1643"
      unitRef="USD">236000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1631"
      unitRef="USD">1964000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1632"
      unitRef="USD">457000</us-gaap:OperatingLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1644"
      unitRef="USD">202000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1646"
      unitRef="USD">114000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1641"
      unitRef="USD">324000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1645"
      unitRef="USD">227000</us-gaap:VariableLeaseCost>
    <tssi:TotalOperatingLeaseCost
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1649"
      unitRef="USD">1175000</tssi:TotalOperatingLeaseCost>
    <tssi:TotalOperatingLeaseCost
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1651"
      unitRef="USD">350000</tssi:TotalOperatingLeaseCost>
    <tssi:TotalOperatingLeaseCost
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1650"
      unitRef="USD">2288000</tssi:TotalOperatingLeaseCost>
    <tssi:TotalOperatingLeaseCost
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1652"
      unitRef="USD">684000</tssi:TotalOperatingLeaseCost>
    <us-gaap:OperatingLeasePayments
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1648"
      unitRef="USD">420000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1647"
      unitRef="USD">136000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1633"
      unitRef="USD">656000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1634"
      unitRef="USD">265000</us-gaap:OperatingLeasePayments>
    <tssi:OperatingLeaseRightOfUseAssets
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1639"
      unitRef="USD">0</tssi:OperatingLeaseRightOfUseAssets>
    <tssi:OperatingLeaseRightOfUseAssets
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1640"
      unitRef="USD">0</tssi:OperatingLeaseRightOfUseAssets>
    <tssi:OperatingLeaseRightOfUseAssets
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1637"
      unitRef="USD">0</tssi:OperatingLeaseRightOfUseAssets>
    <tssi:OperatingLeaseRightOfUseAssets
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1638"
      unitRef="USD">0</tssi:OperatingLeaseRightOfUseAssets>
    <tssi:ScheduleOfOperatingLeaseInformationTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1065">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average remaining lease term &#x2013;&#160;operating leases (months)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;109&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;56&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average discount rate &#x2013;&#160;operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tssi:ScheduleOfOperatingLeaseInformationTableTextBlock>
    <tssi:OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod contextRef="From2025-01-01to2025-06-30" id="fid_1629">P109Y</tssi:OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod>
    <tssi:OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod contextRef="From2024-01-01to2024-06-30" id="fid_1630">P56Y</tssi:OperatingLeaseWeightedAverageRemainingLeaseTermDuringPeriod>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="AsOf2025-06-30"
      decimals="2"
      id="fid_1636"
      unitRef="Pure">0.07</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="AsOf2024-06-30"
      decimals="2"
      id="fid_1635"
      unitRef="Pure">0.05</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1066">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Fiscal&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Year&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,813&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,662&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,777&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2028&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,905&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2029&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,265&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;2030&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,538&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;16,678&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total minimum future lease payments&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;34,638&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Less imputed interest&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(10,099 &lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;24,539&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Reported as of June 30, 2025 (in &#x2018;000&#x2019;s) :&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Current portion of lease liability&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,891&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Non-current portion of lease liability&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;22,648&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;24,539&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1653"
      unitRef="USD">1813000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1654"
      unitRef="USD">3662000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1655"
      unitRef="USD">3777000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1656"
      unitRef="USD">3905000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1657"
      unitRef="USD">3265000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <tssi:LesseeOperatingLeaseLiabilityPaymentsDueYearSix
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1664"
      unitRef="USD">1538000</tssi:LesseeOperatingLeaseLiabilityPaymentsDueYearSix>
    <tssi:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour
      contextRef="AsOf2025-06-30"
      decimals="-4"
      id="fid_1658"
      unitRef="USD">166780000</tssi:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1659"
      unitRef="USD">34638000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1660"
      unitRef="USD">10099000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1661"
      unitRef="USD">24539000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1662"
      unitRef="USD">1891000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1663"
      unitRef="USD">22648000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsDue
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1665"
      unitRef="USD">24539000</us-gaap:CapitalLeasesFutureMinimumPaymentsDue>
    <us-gaap:EarningsPerShareTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1030">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;Note 5 - Earnings Per-Share &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Basic and diluted income per share is based on the weighted average number of shares of common stock and potential common stock outstanding during the period. Potential common stock, for the purpose of determining diluted income per share, includes the effects of dilutive unvested restricted stock, options to purchase common stock and convertible securities. The effect of such potential common stock is computed using the treasury stock method or the if-converted method, as applicable.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The following table presents a reconciliation of the numerators and denominators of the basic and diluted income per share computations for income from continuing operations. In the table below, income represents the numerator, and shares represent the denominator (in thousands except per share amounts):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;(unaudited)&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;(unaudited)&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Basic Earnings per share&lt;/strong&gt;:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Net income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,483&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,402&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,462&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,417&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Weighted-average shares of common stock outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;23,581&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;22,077&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;23,871&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;21,988&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic Earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.19&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Diluted Earnings per share&lt;/strong&gt;:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,483&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,402&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,462&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,417&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted-average shares of common stock outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;23,581&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;22,077&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;23,871&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;21,988&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Dilutive options and warrants outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,226&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,623&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,368&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,546&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Number of shares used in diluted per-share computation&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;25,807&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;24,700&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;26,239&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;23,534&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted Earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.17&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;For the three-month periods ended June 30, 2025 and 2024, respectively, 50,000 and 1,566,000 restricted shares and options were excluded from the calculation of dilutive shares because their effect would have been anti-dilutive. For the six-month periods ended June 30, 2025 and 2024, respectively, 50,000 and 2,471,000 restricted shares and options were excluded from the calculation of dilutive shares because their effect would have been anti-dilutive. &lt;/p&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1075">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;(unaudited)&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;(unaudited)&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Basic Earnings per share&lt;/strong&gt;:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Net income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,483&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,402&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,462&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,417&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Weighted-average shares of common stock outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;23,581&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;22,077&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;23,871&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;21,988&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic Earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.19&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Diluted Earnings per share&lt;/strong&gt;:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,483&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,402&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,462&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,417&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted-average shares of common stock outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;23,581&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;22,077&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;23,871&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;21,988&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Dilutive options and warrants outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,226&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,623&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,368&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,546&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Number of shares used in diluted per-share computation&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;25,807&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;24,700&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;26,239&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;23,534&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted Earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.17&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLossAttributableToParentDiluted
      contextRef="From2025-04-01to2025-06-30_tssi_BasicNetIncomePerShareMember"
      decimals="-3"
      id="fid_1674"
      unitRef="USD">1483000</us-gaap:NetIncomeLossAttributableToParentDiluted>
    <us-gaap:NetIncomeLossAttributableToParentDiluted
      contextRef="From2024-04-01to2024-06-30_tssi_BasicNetIncomePerShareMember"
      decimals="-3"
      id="fid_1675"
      unitRef="USD">1402000</us-gaap:NetIncomeLossAttributableToParentDiluted>
    <us-gaap:NetIncomeLossAttributableToParentDiluted
      contextRef="From2025-01-01to2025-06-30_tssi_BasicNetIncomePerShareMember"
      decimals="-3"
      id="fid_1688"
      unitRef="USD">4462000</us-gaap:NetIncomeLossAttributableToParentDiluted>
    <us-gaap:NetIncomeLossAttributableToParentDiluted
      contextRef="From2024-01-01to2024-06-30_tssi_BasicNetIncomePerShareMember"
      decimals="-3"
      id="fid_1689"
      unitRef="USD">1417000</us-gaap:NetIncomeLossAttributableToParentDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2025-04-01to2025-06-30_tssi_BasicNetIncomePerShareMember"
      decimals="-3"
      id="fid_1680"
      unitRef="Shares">23581000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2024-04-01to2024-06-30_tssi_BasicNetIncomePerShareMember"
      decimals="-3"
      id="fid_1681"
      unitRef="Shares">22077000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2025-01-01to2025-06-30_tssi_BasicNetIncomePerShareMember"
      decimals="-3"
      id="fid_1690"
      unitRef="Shares">23871000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2024-01-01to2024-06-30_tssi_BasicNetIncomePerShareMember"
      decimals="-3"
      id="fid_1691"
      unitRef="Shares">21988000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2025-04-01to2025-06-30"
      decimals="INF"
      id="fid_1668"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2024-04-01to2024-06-30"
      decimals="INF"
      id="fid_1669"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2025-01-01to2025-06-30"
      decimals="INF"
      id="fid_1684"
      unitRef="USDPShares">0.19</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2025-04-01to2025-06-30"
      decimals="INF"
      id="fid_1670"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:NetIncomeLossAttributableToParentDiluted
      contextRef="From2025-04-01to2025-06-30_tssi_DilutedNetIncomePerShareMember"
      decimals="-3"
      id="fid_1676"
      unitRef="USD">1483000</us-gaap:NetIncomeLossAttributableToParentDiluted>
    <us-gaap:NetIncomeLossAttributableToParentDiluted
      contextRef="From2024-04-01to2024-06-30_tssi_DilutedNetIncomePerShareMember"
      decimals="-3"
      id="fid_1677"
      unitRef="USD">1402000</us-gaap:NetIncomeLossAttributableToParentDiluted>
    <us-gaap:NetIncomeLossAttributableToParentDiluted
      contextRef="From2025-01-01to2025-06-30_tssi_DilutedNetIncomePerShareMember"
      decimals="-3"
      id="fid_1692"
      unitRef="USD">4462000</us-gaap:NetIncomeLossAttributableToParentDiluted>
    <us-gaap:NetIncomeLossAttributableToParentDiluted
      contextRef="From2024-01-01to2024-06-30_tssi_DilutedNetIncomePerShareMember"
      decimals="-3"
      id="fid_1693"
      unitRef="USD">1417000</us-gaap:NetIncomeLossAttributableToParentDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2025-04-01to2025-06-30_tssi_DilutedNetIncomePerShareMember"
      decimals="-3"
      id="fid_1682"
      unitRef="Shares">23581000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2024-04-01to2024-06-30_tssi_DilutedNetIncomePerShareMember"
      decimals="-3"
      id="fid_1683"
      unitRef="Shares">22077000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2025-01-01to2025-06-30_tssi_DilutedNetIncomePerShareMember"
      decimals="-3"
      id="fid_1694"
      unitRef="Shares">23871000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2024-01-01to2024-06-30_tssi_DilutedNetIncomePerShareMember"
      decimals="-3"
      id="fid_1695"
      unitRef="Shares">21988000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1672"
      unitRef="Shares">2226000</us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants>
    <us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1673"
      unitRef="Shares">2623000</us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants>
    <us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1696"
      unitRef="Shares">2368000</us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants>
    <us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1697"
      unitRef="Shares">1546000</us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1678"
      unitRef="Shares">25807000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1679"
      unitRef="Shares">24700000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1698"
      unitRef="Shares">26239000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1699"
      unitRef="Shares">23534000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2024-04-01to2024-06-30"
      decimals="INF"
      id="fid_1671"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2024-01-01to2024-06-30"
      decimals="INF"
      id="fid_1685"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2025-01-01to2025-06-30"
      decimals="INF"
      id="fid_1686"
      unitRef="USDPShares">0.17</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2024-01-01to2024-06-30"
      decimals="INF"
      id="fid_1687"
      unitRef="USDPShares">0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2025-04-01to2025-06-30"
      decimals="0"
      id="fid_1700"
      unitRef="Shares">50000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-04-01to2024-06-30"
      decimals="0"
      id="fid_1701"
      unitRef="Shares">1566000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2025-01-01to2025-06-30"
      decimals="0"
      id="fid_1702"
      unitRef="Shares">50000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-01-01to2024-06-30"
      decimals="0"
      id="fid_1703"
      unitRef="Shares">2471000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:SegmentReportingDisclosureTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1031">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;Note 6 - Segment Reporting&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;Segment information reported in the tables below represents the operating segments of the Company organized in a manner consistent with which separate information is available and for which segment results are evaluated regularly by our President and CEO, who is our chief operating decision-maker (CODM), in assessing performance, allocating resources and awarding incentive compensation. Prior to the fourth quarter of 2024, our activities were organized and managed in two reportable segments: facilities management and systems integration, with our procurement operating segment aggregated into the systems integration reportable segment. In the fourth quarter of 2024, we reorganized our structure such that our CODM now evaluates our operations and allocates resources on the basis of three segments.&#160; Accordingly, we have determined that we now have three reportable segments as noted below.&#160; Comparable prior period amounts presented have been recast to conform with the current period presentation, including the costs allocated to each reportable segment as provided to our CODM.&#160; Our revenues are substantially all derived from the U.S. market, and all revenues presented are from external customers; we have no intercompany revenues.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The Company&#x2019;s reportable segments are as follows: &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:4%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:4%;vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;span style="font-family:symbol"&gt;&#xb7;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Procurement: Assists our customers in procuring third-party hardware, software, and professional services on their behalf that are used in our integration services as we integrate these components to deliver a completed system to our customers. Although this activity drives some of the work done in the systems integration business, its activities and financial results are reviewed separately from the systems integration segment results.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;span style="font-family:symbol"&gt;&#xb7;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Systems Integration: Integrates IT equipment for OEM vendors and customers to be used inside data center environments, including modular data centers. This includes AI-enabled computer technology as well as more traditional data center equipment. This segment also provides other computer equipment configuration services for our customers.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;span style="font-family:symbol"&gt;&#xb7;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Facilities Management: Involved in the design, project management and maintenance of data centers and mission-critical business operations.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160; &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The CODM evaluates the performance of the segments based on segment revenue, gross profit and pre-tax income, including the significant expenses presented separately in the table below. Segment results are exclusive of certain activities and expenses that are not allocated to specific segments, and which are reconciled below to our consolidated pre-tax income. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;When present, certain expenses within cost of revenues such as amortization of purchased intangibles and unusual and non-recurring items are not allocated to specific segments. Therefore, these amounts are excluded from segment results and included in consolidated pre-tax income.&#160; Other consolidated assets not specifically attributable to or allocated to business segments are principally cash and cash equivalents, prepaids and deposits, certain fixed assets, and operating lease right-of use assets.&#160; Other operating expenses in the following tables generally represent property taxes, rent and related costs, travel and entertainment, professional fees, office supplies and other similar items utilized by the specific reportable segments but not separately identified in the tables below as none of the costs is individually material.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Information regarding our reportable segments is presented below (in thousands):&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Three Months Ended June 30, 2025:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;33,002&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,486&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,482&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;43,970&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Cost of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;30,463&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;5,311&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;381&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;36,155&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Segment gross profit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,539&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,175&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,101&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,815&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Payroll and benefits excluded from cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;793&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;170&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;963&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Depreciation and amortization expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;761&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;764&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;343&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;15&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;358&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Interest expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;756&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;100&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;3&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;859&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Segment pre-tax income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,783&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,178&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;910&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,871&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Capital expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;12,705&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;12,705&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Three Months Ended June 30, 2024:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,914&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,960&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,285&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;12,159&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Cost of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,201&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,824&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;598&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;7,623&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Segment gross profit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;713&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,136&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,687&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,536&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Payroll and benefits excluded from cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;490&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;103&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;593&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Depreciation and amortization expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;91&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;26&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;117&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;349&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(11&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;338&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Interest expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;310&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;44&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;22&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;376&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Segment pre-tax income (loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;403&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,162&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,547&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;3,112&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Capital expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,682&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,682&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Six Months Ended June 30, 2025:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;123,179&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,970&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,780&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;142,929&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Cost of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;113,612&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;11,144&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,148&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;125,904&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Segment gross profit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,567&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,826&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,632&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,025&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Payroll and benefits excluded from cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,624&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;309&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,933&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Depreciation and amortization expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;940&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;946&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;623&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;24&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;661&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Interest expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,108&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;202&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;17&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,327&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Segment pre-tax income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;7,445&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,437&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,276&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;11,158&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:10pt"&gt;Capital expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;27,574&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;27,574&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Six Months Ended June 30, 2024:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,538&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,083&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,431&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,052&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Cost of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;14,916&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,343&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,543&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;20,802&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Segment gross profit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,622&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,740&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,888&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Payroll and benefits excluded from cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;920&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;232&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,152&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Depreciation and amortization expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;150&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;38&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;188&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;510&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;515&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Interest expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;594&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;78&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;32&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;704&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Segment pre-tax income (loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,028&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,082&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,581&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,691&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Capital expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,721&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,721&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The table below reconciles total segment pre-tax income for each period presented above to consolidated pre-tax income (in thousands):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total segment pre-tax income (loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,871&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,112&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;11,158&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,691&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Unallocated SG&amp;amp;A, depreciation and other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,494&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,790&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,136&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,443&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Plus: Unallocated interest income, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;175&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;106&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;558&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;205&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less other expense (plus other income)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Consolidated pre-tax income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,552&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,428&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,580&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,453&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The table below presents segment total assets for June 30, 2025 and December 31, 2024 (in thousands):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total Segment Assets at June 30, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,452&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;38,789&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,773&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;70,014&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total Segment Assets at December 31, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,319&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;25,855&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;932&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;46,106&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;The table below reconciles combined segment total assets for each period presented above to consolidated total assets (in thousands):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Combined total assets included in segments&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;70,014&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;46,106&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Plus items not allocated to segments:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Cash and cash equivalents&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;41,836&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;23,222&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Prepaid expenses and other current assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,055&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;230&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Property and equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;979&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;29&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Lease right-of-use asset&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;22,939&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;24,213&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Other assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,647&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,768&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Consolidated total assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;139,470&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;96,568&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1076">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Information regarding our reportable segments is presented below (in thousands):&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Three Months Ended June 30, 2025:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;33,002&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,486&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,482&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;43,970&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Cost of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;30,463&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;5,311&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;381&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;36,155&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Segment gross profit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,539&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,175&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,101&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,815&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Payroll and benefits excluded from cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;793&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;170&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;963&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Depreciation and amortization expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;761&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;764&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;343&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;15&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;358&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Interest expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;756&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;100&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;3&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;859&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Segment pre-tax income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,783&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,178&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;910&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,871&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Capital expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;12,705&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;12,705&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Three Months Ended June 30, 2024:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,914&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,960&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,285&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;12,159&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Cost of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,201&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,824&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;598&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;7,623&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Segment gross profit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;713&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,136&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,687&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,536&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Payroll and benefits excluded from cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;490&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;103&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;593&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Depreciation and amortization expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;91&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;26&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;117&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;349&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(11&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;338&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Interest expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;310&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;44&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;22&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;376&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Segment pre-tax income (loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;403&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,162&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,547&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;3,112&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Capital expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,682&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,682&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Six Months Ended June 30, 2025:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;123,179&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,970&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,780&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;142,929&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Cost of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;113,612&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;11,144&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,148&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;125,904&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Segment gross profit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;9,567&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,826&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,632&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;17,025&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Payroll and benefits excluded from cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,624&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;309&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,933&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Depreciation and amortization expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;940&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;6&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;946&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;14&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;623&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;24&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;661&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Interest expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,108&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;202&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;17&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,327&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Segment pre-tax income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;7,445&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,437&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,276&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;11,158&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:10pt"&gt;Capital expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;27,574&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;27,574&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Six Months Ended June 30, 2024:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;16,538&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,083&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,431&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,052&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Cost of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;14,916&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,343&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,543&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;20,802&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Segment gross profit&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,622&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,740&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,888&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Payroll and benefits excluded from cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;920&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;232&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,152&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Depreciation and amortization expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;150&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;38&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;188&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;510&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;515&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Interest expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;594&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;78&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;32&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;704&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Segment pre-tax income (loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,028&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,082&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,581&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,691&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Capital expenditures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,721&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,721&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Three Months Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Six Months Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total segment pre-tax income (loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,871&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,112&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;11,158&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;4,691&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Unallocated SG&amp;amp;A, depreciation and other operating expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,494&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,790&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,136&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,443&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Plus: Unallocated interest income, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;175&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;106&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;558&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;205&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less other expense (plus other income)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Consolidated pre-tax income&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,552&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,428&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;4,580&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,453&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Procurement&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Systems Integration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Facilities Management&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Total Segments&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total Segment Assets at June 30, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,452&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;38,789&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,773&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;70,014&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total Segment Assets at December 31, 2024&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;19,319&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;25,855&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;932&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;46,106&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;June 30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Combined total assets included in segments&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;70,014&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;46,106&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Plus items not allocated to segments:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Cash and cash equivalents&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;41,836&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;23,222&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Prepaid expenses and other current assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,055&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;230&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Property and equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;979&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;29&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Lease right-of-use asset&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;22,939&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;24,213&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px"&gt;Other assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,647&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,768&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Consolidated total assets&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;139,470&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;96,568&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:Revenues
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1855"
      unitRef="USD">33002000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1865"
      unitRef="USD">9486000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1874"
      unitRef="USD">1482000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1883"
      unitRef="USD">43970000</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1857"
      unitRef="USD">30463000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1866"
      unitRef="USD">5311000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1875"
      unitRef="USD">381000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1884"
      unitRef="USD">36155000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1858"
      unitRef="USD">2539000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1867"
      unitRef="USD">4175000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1876"
      unitRef="USD">1101000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1885"
      unitRef="USD">7815000</us-gaap:GrossProfit>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1894"
      unitRef="USD">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1868"
      unitRef="USD">793000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1877"
      unitRef="USD">170000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1886"
      unitRef="USD">963000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1860"
      unitRef="USD">0</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1869"
      unitRef="USD">761000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1878"
      unitRef="USD">3000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1887"
      unitRef="USD">764000</us-gaap:DepreciationAndAmortization>
    <us-gaap:OtherGeneralExpense
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1859"
      unitRef="USD">0</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1870"
      unitRef="USD">343000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1879"
      unitRef="USD">15000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1888"
      unitRef="USD">358000</us-gaap:OtherGeneralExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1862"
      unitRef="USD">756000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1871"
      unitRef="USD">100000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1880"
      unitRef="USD">3000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1889"
      unitRef="USD">859000</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1863"
      unitRef="USD">1783000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1872"
      unitRef="USD">2178000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1881"
      unitRef="USD">910000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1890"
      unitRef="USD">4871000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <tssi:CapitalExpendituresAssets
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1864"
      unitRef="USD">0</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1873"
      unitRef="USD">12705000</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1882"
      unitRef="USD">0</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1891"
      unitRef="USD">12705000</tssi:CapitalExpendituresAssets>
    <us-gaap:Revenues
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1856"
      unitRef="USD">4914000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1900"
      unitRef="USD">4960000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1909"
      unitRef="USD">2285000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1917"
      unitRef="USD">12159000</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1892"
      unitRef="USD">4201000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1901"
      unitRef="USD">2824000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1911"
      unitRef="USD">598000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1918"
      unitRef="USD">7623000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1893"
      unitRef="USD">713000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1902"
      unitRef="USD">2136000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1910"
      unitRef="USD">1687000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1919"
      unitRef="USD">4536000</us-gaap:GrossProfit>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-04-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1861"
      unitRef="USD">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1903"
      unitRef="USD">490000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1912"
      unitRef="USD">103000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1920"
      unitRef="USD">593000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1895"
      unitRef="USD">0</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1904"
      unitRef="USD">91000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1913"
      unitRef="USD">26000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1921"
      unitRef="USD">117000</us-gaap:DepreciationAndAmortization>
    <us-gaap:OtherGeneralExpense
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1896"
      unitRef="USD">0</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1905"
      unitRef="USD">349000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1914"
      unitRef="USD">11000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1922"
      unitRef="USD">338000</us-gaap:OtherGeneralExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1897"
      unitRef="USD">310000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1906"
      unitRef="USD">44000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1915"
      unitRef="USD">22000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1923"
      unitRef="USD">376000</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1898"
      unitRef="USD">403000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1907"
      unitRef="USD">1162000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1916"
      unitRef="USD">1547000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1924"
      unitRef="USD">3112000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <tssi:CapitalExpendituresAssets
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1899"
      unitRef="USD">0</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1908"
      unitRef="USD">1682000</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2024-04-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1925"
      unitRef="USD">1682000</tssi:CapitalExpendituresAssets>
    <us-gaap:Revenues
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1704"
      unitRef="USD">123179000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1705"
      unitRef="USD">16970000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1706"
      unitRef="USD">2780000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1707"
      unitRef="USD">142929000</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1712"
      unitRef="USD">113612000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1713"
      unitRef="USD">11144000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1714"
      unitRef="USD">1148000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1715"
      unitRef="USD">125904000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1724"
      unitRef="USD">9567000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1721"
      unitRef="USD">5826000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1722"
      unitRef="USD">1632000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1723"
      unitRef="USD">17025000</us-gaap:GrossProfit>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1728"
      unitRef="USD">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1730"
      unitRef="USD">1624000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1731"
      unitRef="USD">309000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1732"
      unitRef="USD">1933000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1736"
      unitRef="USD">0</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1738"
      unitRef="USD">940000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1739"
      unitRef="USD">6000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1740"
      unitRef="USD">946000</us-gaap:DepreciationAndAmortization>
    <us-gaap:OtherGeneralExpense
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1744"
      unitRef="USD">14000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1746"
      unitRef="USD">623000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1747"
      unitRef="USD">24000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1748"
      unitRef="USD">661000</us-gaap:OtherGeneralExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1768"
      unitRef="USD">2108000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1769"
      unitRef="USD">202000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1770"
      unitRef="USD">17000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1771"
      unitRef="USD">2327000</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1792"
      unitRef="USD">7445000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1793"
      unitRef="USD">2437000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1794"
      unitRef="USD">1276000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1795"
      unitRef="USD">11158000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <tssi:CapitalExpendituresAssets
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1808"
      unitRef="USD">0</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1809"
      unitRef="USD">27574000</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1810"
      unitRef="USD">0</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2025-01-01to2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1811"
      unitRef="USD">27574000</tssi:CapitalExpendituresAssets>
    <us-gaap:Revenues
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1708"
      unitRef="USD">16538000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1709"
      unitRef="USD">7083000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1710"
      unitRef="USD">4431000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1711"
      unitRef="USD">28052000</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1716"
      unitRef="USD">14916000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1717"
      unitRef="USD">4343000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1718"
      unitRef="USD">1543000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1719"
      unitRef="USD">20802000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1720"
      unitRef="USD">1622000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1725"
      unitRef="USD">2740000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1726"
      unitRef="USD">2888000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1727"
      unitRef="USD">7250000</us-gaap:GrossProfit>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1729"
      unitRef="USD">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1733"
      unitRef="USD">920000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1734"
      unitRef="USD">232000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1735"
      unitRef="USD">1152000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1737"
      unitRef="USD">0</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1741"
      unitRef="USD">150000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1742"
      unitRef="USD">38000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1743"
      unitRef="USD">188000</us-gaap:DepreciationAndAmortization>
    <us-gaap:OtherGeneralExpense
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1745"
      unitRef="USD">0</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1749"
      unitRef="USD">510000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1750"
      unitRef="USD">5000</us-gaap:OtherGeneralExpense>
    <us-gaap:OtherGeneralExpense
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1751"
      unitRef="USD">515000</us-gaap:OtherGeneralExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1772"
      unitRef="USD">594000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1773"
      unitRef="USD">78000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1774"
      unitRef="USD">32000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1775"
      unitRef="USD">704000</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1796"
      unitRef="USD">1028000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1797"
      unitRef="USD">1082000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1798"
      unitRef="USD">2581000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1799"
      unitRef="USD">4691000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <tssi:CapitalExpendituresAssets
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1812"
      unitRef="USD">0</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1814"
      unitRef="USD">1721000</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1813"
      unitRef="USD">0</tssi:CapitalExpendituresAssets>
    <tssi:CapitalExpendituresAssets
      contextRef="From2024-01-01to2024-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1815"
      unitRef="USD">1721000</tssi:CapitalExpendituresAssets>
    <us-gaap:OtherComprehensiveIncomeLossBeforeTax
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1926"
      unitRef="USD">4871000</us-gaap:OtherComprehensiveIncomeLossBeforeTax>
    <us-gaap:OtherComprehensiveIncomeLossBeforeTax
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1927"
      unitRef="USD">3112000</us-gaap:OtherComprehensiveIncomeLossBeforeTax>
    <us-gaap:OtherComprehensiveIncomeLossBeforeTax
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1816"
      unitRef="USD">11158000</us-gaap:OtherComprehensiveIncomeLossBeforeTax>
    <us-gaap:OtherComprehensiveIncomeLossBeforeTax
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1817"
      unitRef="USD">4691000</us-gaap:OtherComprehensiveIncomeLossBeforeTax>
    <tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1928"
      unitRef="USD">3494000</tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses>
    <tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1929"
      unitRef="USD">1790000</tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses>
    <tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1818"
      unitRef="USD">7136000</tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses>
    <tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1822"
      unitRef="USD">3443000</tssi:LessUnallocatedSellingGeneralAndAdministrativeDepreciationAndOtherOperatingExpenses>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1930"
      unitRef="USD">175000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1931"
      unitRef="USD">106000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1819"
      unitRef="USD">558000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1823"
      unitRef="USD">205000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:OtherExpenses
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1935"
      unitRef="USD">0</us-gaap:OtherExpenses>
    <us-gaap:OtherExpenses
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1934"
      unitRef="USD">0</us-gaap:OtherExpenses>
    <us-gaap:OtherExpenses
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1820"
      unitRef="USD">0</us-gaap:OtherExpenses>
    <us-gaap:OtherExpenses
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1824"
      unitRef="USD">0</us-gaap:OtherExpenses>
    <us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes
      contextRef="From2025-04-01to2025-06-30"
      decimals="-3"
      id="fid_1932"
      unitRef="USD">1552000</us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes>
    <us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes
      contextRef="From2024-04-01to2024-06-30"
      decimals="-3"
      id="fid_1933"
      unitRef="USD">1428000</us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes>
    <us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes
      contextRef="From2025-01-01to2025-06-30"
      decimals="-3"
      id="fid_1821"
      unitRef="USD">4580000</us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes>
    <us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes
      contextRef="From2024-01-01to2024-06-30"
      decimals="-3"
      id="fid_1825"
      unitRef="USD">1453000</us-gaap:ResultsOfOperationsIncomeBeforeIncomeTaxes>
    <us-gaap:Assets
      contextRef="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1804"
      unitRef="USD">28452000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1805"
      unitRef="USD">38789000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2025-06-30_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1806"
      unitRef="USD">2773000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2025-06-30_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1807"
      unitRef="USD">70014000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_ProcurementMember"
      decimals="-3"
      id="fid_1800"
      unitRef="USD">19319000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_SystemIntegrationMember"
      decimals="-3"
      id="fid_1801"
      unitRef="USD">25855000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2024-12-31_us-gaap_OperatingSegmentsMember_tssi_FacilitiesSegmentMember"
      decimals="-3"
      id="fid_1802"
      unitRef="USD">932000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2024-12-31_us-gaap_OperatingSegmentsMember"
      decimals="-3"
      id="fid_1803"
      unitRef="USD">46106000</us-gaap:Assets>
    <tssi:CombinedTotalAssetsIncludedInSegments
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1839"
      unitRef="USD">70014000</tssi:CombinedTotalAssetsIncludedInSegments>
    <tssi:CombinedTotalAssetsIncludedInSegments
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1838"
      unitRef="USD">46106000</tssi:CombinedTotalAssetsIncludedInSegments>
    <us-gaap:OtherCashEquivalentsAtCarryingValue
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1827"
      unitRef="USD">41836000</us-gaap:OtherCashEquivalentsAtCarryingValue>
    <us-gaap:OtherCashEquivalentsAtCarryingValue
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1826"
      unitRef="USD">23222000</us-gaap:OtherCashEquivalentsAtCarryingValue>
    <tssi:PrepaidExpenseAndOtherCurrentAssets
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1829"
      unitRef="USD">1055000</tssi:PrepaidExpenseAndOtherCurrentAssets>
    <tssi:PrepaidExpenseAndOtherCurrentAssets
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1828"
      unitRef="USD">230000</tssi:PrepaidExpenseAndOtherCurrentAssets>
    <tssi:PropertyPlantAndEquipmentNetTotal
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1831"
      unitRef="USD">979000</tssi:PropertyPlantAndEquipmentNetTotal>
    <tssi:PropertyPlantAndEquipmentNetTotal
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1830"
      unitRef="USD">29000</tssi:PropertyPlantAndEquipmentNetTotal>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1833"
      unitRef="USD">22939000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1832"
      unitRef="USD">24213000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OtherAssets
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1835"
      unitRef="USD">2647000</us-gaap:OtherAssets>
    <us-gaap:OtherAssets
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1834"
      unitRef="USD">2768000</us-gaap:OtherAssets>
    <us-gaap:Assets
      contextRef="AsOf2025-06-30"
      decimals="-3"
      id="fid_1837"
      unitRef="USD">139470000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2024-12-31"
      decimals="-3"
      id="fid_1836"
      unitRef="USD">96568000</us-gaap:Assets>
    <us-gaap:SubsequentEventsTextBlock contextRef="From2025-01-01to2025-06-30" id="fid_1077">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&lt;strong&gt;Note 7 &#x2013; Subsequent Events&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;"&gt;On July 5, 2025, the outstanding $20.0 million principal balance on our Credit Agreement, used to finance the build-out of our facility in Georgetown, Texas, converted to a fully amortizing term loan with a final due date of January 5, 2030 and monthly payments of approximately $437,000 beginning on August 5, 2025.&#160; As the loan bears a floating interest rate, the total payment will fluctuate from time to time with prevailing interest rates.&lt;/p&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:ConstructionLoan
      contextRef="AsOf2025-07-05_us-gaap_SubsequentEventMember"
      decimals="-5"
      id="fid_1840"
      unitRef="USD">20000000.0</us-gaap:ConstructionLoan>
    <tssi:MonthlyPaymentOfLoanUnderCreditAgreement
      contextRef="AsOf2025-07-05_us-gaap_SubsequentEventMember"
      decimals="0"
      id="fid_1841"
      unitRef="USD">437000</tssi:MonthlyPaymentOfLoanUnderCreditAgreement>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
